基本数据类型共6种:undefined,null,number,string,boolean,symbol.
null值为空对象指针。console.log(typeOf(null)) //输出object
要将其他的值转化为布尔值,可以调用boolean()转型函数
有三个函数可以将非数值转化为数值:Number() parseInt() parseFloat() // parseInt parseFloat 转换字符串为数值
object类型 constructor:用于创建当前对象的函数。 hasOwnProperty(propertyName):用于判断当前对象实例上是否存在给定的属性。
模版字面量标签函数
function simpleTag(strings,...expressions){
console.log(strings)
for(const expressions of expressions){
console.log(expressions)
}
return 'foobar'
}
let taggedResult = simpleTag${a} +${b} = ${a + b};
//6
//9
//15
console.log(taggedResult); //"foobar"
String.raw 函数可以直接获得原始的模版字面量
一元操作符 let age = 29 let anotherAge = --age+2 console.log(age) // 28 console.log(anotherAge) // 30 无论是前缀递增还是前缀递减 变量的值都会在语句被求值之前改变。 后缀语法和前缀语法区别在于,后缀版递增递减值语句被求值后发生。
var let const
var声明提升 声明提升就是把所有的变量声明拉到函数顶部 function foo(){ console.log(age) var age = 26 } foo()//26
let 块级作用域 存在暂时性死区
const 块级作用域 存在暂时性死区。定义后无法更改
建议风格 不使用var,const优先,let次之
do-while语句 do{ statement } while (expression)
for-in 语句 for(property in expression) statement 枚举对象中的所有属性
for-of语句 for(property of expression) statement 用于遍历可迭代对象的元素