当前位置: 代码网 > it编程>编程语言>Javascript > ES6变量赋值和基本数据类型详解

ES6变量赋值和基本数据类型详解

2024年05月18日 Javascript 我要评论
let和constlet和const不存在变量提升变量一定要在声明后使用,否则报错。var a = [];for (var i = 0; i < 10; i++) { a[i] = funct

let和const

let和const不存在变量提升

变量一定要在声明后使用,否则报错。

变量i是var声明的,在全局范围内都有效。所以每一次循环,新的i值都会覆盖旧值,导致最后输出的是最后一轮的i的值。

上面代码中,变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6。

暂时性死区(temporal dead zone,简称tdz)

只要块级作用域内存在let或const命令,则变量会被绑定在这个区域内,不受外层作用域的变量影响。凡在声明之前使用了变量,则会报错。
注意,如果使用了let或const,typeof 就不安全了

不允许重复声明

块级作用域与函数声明

并且es6规定,块级作用域之中,函数声明语句的行为类似于let,在块级作用域之外不可引用。

const

const只保证变量指向的地址不变,不保证该地址的数据不变。

如果真的想将对象冻结,应该使用object.freeze方法。

变量解构

解构必须左右解构相同

1.解构失败则是undefined,如有默认值则取默认值
2.左右解构不同则抛error

上面的表达式都会报错,因为等号右边的值,要么转为对象以后不具备iterator接口(前五个表达式),要么本身就不具备iterator接口(最后一个表达式)。

事实上,只要某种数据结构具有iterator接口,都可以采用数组形式的解构赋值。例如set数据类型和generate函数

默认值

解构赋值允许默认值,在定义的时候直接赋值即可

注意,es6内部使用严格相等运算符(===),判断一个位置是否有值。所以,如果一个数组成员不严格等于undefined,默认值是不会生效的。

对象的解构赋值

对象的解构与数组有一个重要的不同:数组的元素是按序排列的,取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

对象解构赋值的内部机制:先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。

默认值生效的条件同样是,对象的属性值严格等于undefined。

注意赋值时不能让大括号在行首

字符串的解构赋值

字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。

数值和布尔值的解构赋值

解构赋值时,如果等号右边是数值和布尔值,则会先转为对象。

函数的解构赋值

解构赋值的7种常见用法

1.变量交换

2.从函数返回多个值

3.函数参数的定义

4.提取json数据

5.函数参数默认值

6.遍历map结构

7.输入模块的指定方法

string

字符串编码{}

es5中超过ffff值的unicode字符只能用两个字节表示,但是es6增加了大括号方式

还可以在变量中拼接unicode编码

新增方法

1.codepointat 获取字符的码点,10进制
codepointat方法是测试一个字符由两个字节还是由四个字节组成的最简单方法。

2.string.fromcodepoint() 返回传入码点的对于字符
3.字符串iterator接口新增,可以用for of遍历字符串
4..at()能返回给定位置的字符串,允许超过ffff的字符被返回,es5中对应的是charat
5.includes() 判断字符串中是否包含传入的字符
6.startswith() 判断字符串的起点是否是传入的字符
7.endswith() 判断字符串的终点是否是传入的字符
8.repeate() 重复某字符
9.padstart() 补全开头
10.padend() 补全结尾

模板字符串

嵌入变量${}
空格、缩进、换行会在输出是保留,可以trim消除
字符串模板嵌套

number

八进制和二进制写法

二进制 0b开头
八进制 0o开头

新增方法

number.isnan

number.isfinite

number.isinteger

在javascript内部,整数和浮点数是同样的储存方法,所以3和3.0被视为同一个值。

number.epsilon 极小的误差常量

javascript能够准确表示的整数范围在-253到253之间(不含两个端点),超过这个范围,无法精确表示这个值。

number.issafeinteger() 安全整数范围

新增函数

trunc 化零为整

sign 判断正负数

cbrt 计算平方根

clz32 返回一个32位二进制

**指数运算

到此这篇关于es6变量赋值和基本数据类型的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com