zoukankan      html  css  js  c++  java
  • javascript严格模式

    设立"严格模式"的目的,主要有以下几个:

      1. 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

      2. 消除代码运行的一些不安全之处,保证代码运行的安全;

      3. 提高编译器效率,增加运行速度;

      4. 为未来新版本的Javascript做好铺垫。

    严格模式下,变量都必须先用var命令声明,然后再使用。

    test_163:/home/exenode/es6 # more mytest.js 
    class Animal{
            constructor(name){
                    this.name = name;
            }
    
            sayName(){
                    console.log('My name is ' + this.name);
            }
    
    }
    
    class Programmer extends Animal{
            constructor(name){
                    super(name);
            }
    
            program(){
                    console.log("I'm coding...");
            }
    
    }
    
    var animal = new Animal('dummy');
    
    wayou = new Programmer('wyou');
    
    animal.sayName();
    wayou.sayName();
    
    wayou.program();
    test_163:/home/exenode/es6 # 
    test_163:/home/exenode/es6 # node mytest.js 
    /home/exenode/es6/mytest.js:1
    (function (exports, require, module, __filename, __dirname) { class Animal{
                                                                  ^^^^^
    
    SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
        at exports.runInThisContext (vm.js:53:16)
        at Module._compile (module.js:414:25)
        at Object.Module._extensions..js (module.js:442:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:313:12)
        at Function.Module.runMain (module.js:467:10)
        at startup (node.js:136:18)
        at node.js:963:3

    修改如下:

    test_163:/home/exenode/es6 # more mytest.js 
    'use strict';
    class Animal{
            constructor(name){
                    this.name = name;
            }
    
            sayName(){
                    console.log('My name is ' + this.name);
            }
    
    }
    
    class Programmer extends Animal{
            constructor(name){
                    super(name);
            }
    
            program(){
                    console.log("I'm coding...");
            }
    
    }
    
    var animal = new Animal('dummy');
    
    var wayou = new Programmer('wyou');
    
    animal.sayName();
    wayou.sayName();
    
    wayou.program();
    test_163:/home/exenode/es6 # 
    test_163:/home/exenode/es6 # node mytest.js 
    My name is dummy
    My name is wyou
    I'm coding...
    test_163:/home/exenode/es6 # 
  • 相关阅读:
    webpack学习笔记(五)
    webpack学习笔记(四)
    webpack学习笔记(三)
    directives 自定义指令
    css面试--基础
    css面试--H5移动端
    vue watch和computed的使用场景
    JS继承的实现方式
    js面试--ajax与性能优化
    js面试--概念
  • 原文地址:https://www.cnblogs.com/z360519549/p/5461939.html
Copyright © 2011-2022 走看看