JS 有哪些数据类型?
- JavaScript定义了7种数据类型,分别是数值、字符串、布尔值、对象、ES6新增的Symbol、undefined、null。
- 数值、字符串、布尔值、Symbol称为原始类型的值,即他们是最基本的数据类型,不再细分。
- 对象称为合成类型(又称复杂类型)的值,因为一个对象往往是多个原始类型值的合成,可以看作是一个存放各种值的容器。
- 对象又细分为狭义的对象(object)、数组(array)、函数(function)、正则表达式(regexp)。
- undefined、null,一般将他们看成两个特殊值。
JS 变量声明提升是什么意思?
- JavaScript引擎的工作方式是:先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果就是所有的变量声明语句,都会被提升到代码的头部,然后给它初始值undefined,然后才逐句执行代码,这就称为‘变量提升’,也叫做‘变量的声明前置’。
console.log(a); // undefined 变量提升 var a = undefined
var a = 1;
console.log(b); //报错 b没声明/定义
sayName('world');// hello world 函数声明的函数吊用可以放在函数前
sayAge(10); //报错 函数表达式声明的函数 必须是声明在前,调用在后
function sayName(name){
console.log('hello ', name);
}
var sayAge = function(age){
console.log(age);
};