美文网首页
es6中块级绑定和字符串总结

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

作者: 单只蝴蝶_569d | 来源:发表于2020-08-15 11:36 被阅读0次

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

  • 不会变量提升
  • 不可重复声明
  • 在声明之前不可访问变量,就算是type操作符也会引发错,误因为在预编译阶段,要么把变量提升到作用域顶部(var),要不放入临时性死区(let,const),访问临时性(TDZ)的变量会触发运行时的错误

const和let的不同处

  • const 不允许修改绑定,但允许修改值。

  • 在for循环,初始化变量使用const,在修改初始化变量值时会报错

  • 在for-in和for-of循环中,使用const时的行为和let相同。

     for(const key in object){
         console.log(key)
     }
    

    字符串和正则表达式

    es6新增的特性

  • "string".codePointAt(1) --字符串按位置提取的字符代码点。该方法接受的为码位单元而非字符串位置

  • String.fromCodePoint(134071) --字符串内某个字符的代码点

  • normalize() --

  • 正则表达式是u标志 --当对正则表达式设置了u标志,他的工作模式切换到针对字符,而不是针对码元。 可用育计算某个字符串的字节数

    // 此方法对于常字符串慎用,有性能问题,可以使用字符串的迭代器来操作
     function codeLength(text){
          const result=text.match(/[\s\S]/gu)
          return result?result.length:0
      }
      const length=codeLength("漳卅a")
    
  • includes() 给定文本存在于字符串的任意位置,返回true

  • startsWith() 给定文本存在于字符串的开始位置 返回true,否则返回false

  • endsWith() 给定文本存在于字符串的结束位置 返回true 否则返回false

    const text='hello world'
    text.includes(0) //true
    text.startsWith(hello) //true
    text.endsWith(ld) //true
    
  • repeat() 它接受一个参数作为字符串的重复次数,返回
    一个将初始字符串重复指定次数的新字符串

 ass.repeat(3) //assassass
  • 正则表达式y标志
  • flag

模板字面量

  • es6出来之前,多行字符串的权宜之计
var message="hello\
             string" // hello string
var message=[
    'hello',
    'world'
].join("\n) 
  • es6的模板字符串解决方案
 const message=`hello
world`                     //hello
                            world

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

  • 替换位
    es6中替换位,允许你将任何有效的js表达式嵌入到模板字符串中
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
     }

相关文章

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

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

  • Understanding ES6 -- 深入理解ES6书籍

    understanding es6 -- Nicholas C. Zakas 块级绑定 function ...

  • ES6 学习心得 --- 块级绑定

    块级绑定:变量在块级作用域中的声明绑定形式。 块级绑定新的最佳实践 总结:默认情况下使用 const 、并且只在...

  • ES6学习

    ES6 块级作用域、字符串、函数 let和const 定义变量是用块级作用域let替代var const定义不可修...

  • ES6 块级绑定

    var 声明与变量提升 使用 var 关键字声明的变量,无论其实际声明位置在何处,都会被视为声明于所在函数的顶部,...

  • [ES6] 块级绑定

    使用var声明变量 全局变量挂载到全局对象:全局对象成员污染问题 允许重复的变量声明:导致数据被覆盖 变量提升:怪...

  • es6新特性

    ES6 新特性 ES6 新特性 一ES6简介 二块级作用域绑定1 let声明2 const声明Constant D...

  • 《深入理解ES6》学习笔记(第三天)

    《深入理解ES6》学习笔记(第三天) 第一章 块级作用域绑定 第2节 块级声明块级声明用于声明在指定块的作用域之外...

  • ECMAScript 6 知识总结(一、ES6与ES5对比)

    ECMAScript 6 知识总结 一、ES6改良ES5的缺陷 ES6新增块级作用域**在块级作用域内声明的变量不...

  • 前端高频面试题

    ES6语法:let const 箭头函数 Map Set 字符串模版 块级 数组与字符串[https://deve...

网友评论

      本文标题:es6中块级绑定和字符串总结

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