美文网首页js从0开始学习
js - 02 JS的组成和变量

js - 02 JS的组成和变量

作者: 大怪兽迪迦 | 来源:发表于2019-11-04 16:27 被阅读0次

    JS的组成

    按照相关的js语法,去操作页面中的元素,又是还要操作浏览器中的一些功能

    • ECMAscript 3/5/6…… : js的语法规范(变量、数据类型、操作语句等)
    • DOM(document object model):文档对象模型,提供一些js的属性和方法,用来操作页面中的DOm元素
    • BOM(browser object model):浏览器对象模型,提供一些js的属性和方法,用来操作浏览器中的

    JS中的变量

    变量:可变的量,在编程语言中,变量其实就是一个名字,用来储存和代表不同值的东西

        // ES3
        var a = 12; // => 创建一个变量;
        a = 13;
        console.log(a)  // => 输出的是a代表的值13;
        
        // ES6
        let b = 100; // => 创建一个变量;
        b = 200;
        console.log(b) // => 输出的是b待播啊的值是200;
        
        const c = 100; // => 一个特殊的变量,可以理解为常量;
        c = 200; // => 报错。CONST创建的变量,存储的值不能被修改;
        
        //创建函数也可以理解为创建一个变量
        function fn(){}
        //创建一个类可以理解为创建一个变量
        class A{}
        //ES6的模块导出可以理解为创建一个变量
        import XXX from './xxx.js'
        //Symbol 创建唯一值
        let a = 100;
        let b = 100;
        a == b    =>     true
        
        let a = symbol(100);
        let b = symbol(100);
        a == b    =>     false
        // 创建唯一值a 所以不可能与其他值相等
    

    变量的作用域

    一个变量的作用域是是程序源码中定义这个变量的区域

    • 全局变量:拥有全局作用域,在js代码中的任何地方都是有定义的。
    • 局部变量:作用域是局部性。

    全局变量

    • 优先性:
      局部变量的优先级高于全局变量
    var scope = "global"           // 声明一个全局变量
    function checkscope(){
       var scope = "local"         // 声明一个同名的局部变量
       return scope               // 返回局部变量的值,而不是全局变量的值
    }
    checkscope()                 // => "local"
    

    思考:尽管在定义全局变量时不用写var,在局部定义时必须写,若不写将会发生什么

    scope = "global";               // 声明一个全局变量,不用var
    function checkscope2(){
        scope = "local";            // 修改了全局变量
        myscope = "local";          // 声明一个新的全局变量
        return [scope, myscope]     // 返回两个值
    }
    console.log(checkscope2())       // => return["local", "local"]: 产生了副作用
    console.log(scope)              // => global
    console.log(myscope)            // => 报错
    

    相关文章

      网友评论

        本文标题:js - 02 JS的组成和变量

        本文链接:https://www.haomeiwen.com/subject/fmudbctx.html