js的let語句在安卓手機端的QQ瀏覽器出錯的問題

來源:互聯網
上載者:User

標籤:目的   http   creat   check   font   png   col   ons   img   

關於JavaScript裡面的let, let 語句可以聲明一個塊級範圍的本地變數,並且可選的將其初始化為一個值。
<ul id="list"> </ul>
var list = document.getElementById("list");for (var i = 1; i <= 5; i++) {    var item = document.createElement("LI");    item.appendChild(document.createTextNode("Item " + i));    let j = i;    item.onclick = function (ev) {        console.log("Item " + j + " is clicked.");    };    list.appendChild(item);}           

分別點擊頁面的li標籤內容,控制器分別輸出一下內容:

解析:

  如果不用let,而改用var的話,將總是列印出 Item 5 is Clicked,因為var聲明的 j 是函數級變數,5個內建函式都指向了同一個 j ,而 j 最後一次賦值是5。

  用了let後,j 變成塊級域(也就是花括弧中的塊,每進入一次花括弧就產生了一個塊級域),所以 5 個內建函式指向了不同的 j 。

然而這次要討論的並不是關於let的用法,而是做新項目的時候發現了個新問題:使用了let的項目無法在安卓手機的QQ瀏覽器APP正常開啟頁面。首先推薦個連結: http://ruanyf.github.io/es-checker/index.cn.html(檢測當前的瀏覽器是否支援ECMAScript 6)

 左邊是安卓QQ app裡面帶的瀏覽器測得結果,而右邊是安卓QQ瀏覽器APP的測試結果(測試PC端瀏覽器及手機的其他瀏覽器大部分都是90%以上)。

而我目前的解決方案僅是將let改為了var。然後說一下解決這個問題的思路,首先let是ES6新增的文法,所以我們需要去查一下哪些瀏覽器不支援ES6。

比較幸運的是居然找到了上面說到的測試連結,真的很好用,直接用瀏覽器開啟連結就可以知道其相容性。

除了let的問題,本次項目用到了vue.js,剛開始函式宣告方式不嚴謹,但是在PC端,安卓的其他瀏覽器(除了QQ瀏覽器),IOS的瀏覽器包括QQ瀏覽器,都可以正常顯示,唯獨安卓的QQ瀏覽器不能正常顯示。

 

js的let語句在安卓手機端的QQ瀏覽器出錯的問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.