es6中块级绑定和字符串总结

2020-08-15  本文已影响0人  单只蝴蝶_569d

1、块级作用域

var变量提升

var不管在哪声明,都会被提升到当前作用域顶级声明的变量。也就是变量提升.如下例子,当condition为false

function getVaule(condition){
    if(condition){
        var value="blue"
        // 1 此处可以访问变量value值,值为blue
    }
    // 2 此处也可以访问变量value的值,置为undefinded
}

上面的例子,当condition为false时,位置2仍然可以访问变量value。但没有值。这个就是因为js中的变量提升。在预编译阶段,js引擎,已经将上面的函数修改为下面形式

function getVaule(condition){
    var value;
    if(condition){
       value="blue"
        // 1 此处可以访问变量value值,值为blue
    }
    // 2 此处也可以访问变量value的值,置为undefinded
}

块级声明

块级声明用与在指定块的作用域之后无法访问的变量

1/ {}之间
2/ 函数内部

let、const

const和let的不同处

 ass.repeat(3) //assassass

模板字面量

var message="hello\
             string" // hello string
var message=[
    'hello',
    'world'
].join("\n) 
 const message=`hello
world`                     //hello
                            world

es6中的所有空格,都是字符串中的内容。

let name = "Nicholas",
message = `Hello, ${name}.`; // hello Nicholas
  const test1='12'
     const test2='23'
     let message=tag`hello world ${test1} 夯实 ${test2}`
     // 第一个参数 ['hello world',' 夯实','']
    // 参数 substitutions ['12','23']
    // 使用tag 标签将 模板字符串显示
     function tag(literals,...substitutions){
         let result;
        for(let i=0;i<substitutions.length;i++){

            result+=literals[i];
            result+=substitutions[i]
        } 
        return result
     }
上一篇 下一篇

猜你喜欢

热点阅读