基本数据类型(ES6)
- null: 针对于对象的空指针类型
- undefined: 针对于未初始化值,系统级的默认类型
- Boolean: 真假值类型
- Number: 整型或浮点型数字类型
- String: 针对字符系列化的一种类型(有序列表)
- BigInt: 任意精度的整型
- Symbol: 唯一不可变的值的包装类型
动态语言
- JS代码在运行之前没有编译过程
- JS引擎会在执行期根据赋值的情况,动态的分配存储空间的大小和地址
- JS变量在执行期可以赋值任意类型的数据
动态语言强制类型转换是针对于“值”
静态语言针对于当前变量可存储某一种数据类型所需要改变的空间
- JS代码运行过程(JS执行期)
- 语法检查期
- 变量收集期
- 代码解释执行期
字面量(直接量)
概念
字面量不需要特定的方法生成就能得到的值,自变量是值,不是变量。
数字字面量
js
let number = 27;
布尔字面量
js
let isBoy = true;
正则字面量
js
let regx = /abc/;
字符串字面量
js
let name = 'wyg';
数组字面量
js
let likeArr = ['eat', 'sleep', 'study'];
对象字面量
js
let personInfo = {
name: 'wyg'
}
模板字面量
js
let name = 'wyg';
let template = `this is ${name}`;
对象字面量在ES6中的特性
键与值相同,可以只写一个
jslet c = 3; let obj = { a: 1, b: 2, c }
键名变量化,数字化
jslet objKey = 'd'; let obj = { a: 1, b: 2, ['property' + objKey]: 3 }
可以通过
__proto__
设置原型链jslet obj = { __proto__: { toString() { retrun 'abc' } } }
模板字符串
格式化字符串
不使用模板字符串
js
let str = 'this is wyg \n' + 'this is tony'
console.log(str);
使用模板字符串
js
let str = `this is wyg
this is tony
`
console.log(str);
拼接字符串
- 模板字符串中插入变量
js
let strName = 'test'
let str = `this is ${strName}`
- 变量进行计算
js
let str = 'template'
let strName = 'wyg'
console.log(`this is ${str + ' ' + strName}`);