严格模式-基础知识总结------彭记(015)

严格模式

<script>
    /*严格模式*/
    "use strict";
    /*如果同时定义多个同名的变量,后面的将前面的覆盖*/
    /*var age = 20;
    var age = 30;
    console.log(age);
    /!*1.Duplicate parameter name not allowed in this context:函数中不能定义多个同名的形参*!/
    function test(age,age){
        console.log(age);
    }
    test(10,40);*/

   /* var age = 20;
    name1 = 'rose';
    /!*2.name1 is not defined:严格模式下定义变量必须使用var*!/
    console.log(name1);*/

    /*a3.ge is not defined:在严格模式下,eval有自己的作用域*/
    /*eval("var age = 20;console.log(age);");
    console.log(age);*/

    /*4.严格模式是分块(作用域)的*/
   /* function test(){
        "use strict";
        age1 = 10;
        console.log(age1);
        if(true){

            age = 20;
            console.log(age);
        }

    }
    test();
    age = 30;
    console.log(age);*/

    /*5.无法为只读属性赋值: Cannot assign to read only property 'prototype' of function 'function Object()*/
    /*console.log(Object.prototype);
    Object.prototype = {};
    console.log(Object.prototype);*/


    /*6.无法为值类型的数据添加属性,在宽松模式下虽然赋值无效,但是也不会报错*/
    /*值类型的数据无法动态的扩展属性,在严格模式下会报错:Cannot create property 'phone' on string 'jack'*/
   /* var name = 'jack';
    name.phone = '119';
    console.log(name.phone); //undefined*/

    /*var flag = true;
    flag.tel = '120';
    console.log(flag.tel); //undefined

    var age = 20;
    age.email = '110';
    console.log(age.email); //undefined*/

    /*7.以0开头的数值默认被解析为8进制。但是在严格模式下不允许使用8进制的文本.html:67 Uncaught SyntaxError: Octal literals are not allowed in strict mode.*/
    var age = 010;
    console.log(age);
</script>

 

posted @ 2017-08-25 17:15  依旧安好  阅读(236)  评论(0编辑  收藏  举报