ES5嚴格模式

“use strict” 是ES5新增的嚴格模式

為商州等地區(qū)用戶提供了全套網頁設計制作服務,及商州網站建設行業(yè)解決方案。主營業(yè)務為做網站、成都網站設計、商州網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

有以下用法:

1)變量聲明
變量必須先聲明,再使用;

var a=10;
    console.log(a);

2)禁止使用with

    var obj={
            name:"john";
    }

在普通模式下,想要訪問name屬性:

with(obj){
            console.log(name);
    }

但在嚴格模式下,不能使用with,只能使用下面這種方式:

console.log(obj.name)

3)設立eval作用域
在普通模式下,

eval("var a=10;console.log(a)");
console.log(a);                   //輸出10,10

但是在嚴格模式下,

eval("var a=10;console.log(a)");
console.log(a);                   //輸出10    報錯 a is not defined(即eval作用域中的變量外部不能訪問)

4)函數(shù)中的this指向問題
在普通模式下:

function foo(){
            console.log(this);                     //輸出window,在普通模式下,默認為window調用foo  
}
foo();                               

在嚴格模式下:

function foo(){
                console.log(this);                     //輸出undefined,要想輸出window,必須寫成window.foo()
}
    foo();            

5)刪除變量
在普通模式下:

    var a=10;
    delete a;
    console.log(a);                             //輸出10

在嚴格模式下:

var a=10;
delete a;
console.log(a);                             //報錯  嚴格模式下不能刪除變量

6)函數(shù)參數(shù)不能重名
錯誤寫法:

function  foo(x,x){
}

7)八進制字面量表示法
嚴格模式下:

var num=017;
console.log(num);              //報錯  嚴格模式下不允許使用八進制變量                

8)arguments不追蹤參數(shù)變化
普通模式下:

function foo(x){
    console.log(arguments[0]);        //輸出1
    x=2;
    console.log(arguments[0]);         //輸出2
}
foo(1);

在嚴格模式下:

function foo(x){
    console.log(arguments[0]);        //輸出1
    x=2;
    console.log(arguments[0]);         //輸出1
}
foo(1);

本文名稱:ES5嚴格模式
網站鏈接:http://muchs.cn/article0/pipgio.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、電子商務服務器托管、面包屑導航、全網營銷推廣、微信公眾號

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站優(yōu)化排名