JS变量和作用域
一、JS变量
1.变量数据类型和堆栈
1.1 数据类型
(1)基本数据类型:数字、字符串、布尔值、undefined、null
(2)引用数据类型:对象、数组、函数
1.2 堆栈
(1)基本数据类型的值不能被修改,其值保存在栈中,当变量赋予新的值,栈中的值被覆盖。
(2)引用数据类型的值可以被修改,其地址保存在栈中,值保存在堆中。
2.类型检测
2.1 typeof(部分不能区分)
基本数据类型
数字--------number
字符串--------string
布尔值--------boolean
undefined--------undefined
null--------object
引用数据类型
对象--------object
数组--------object
2.2 instanceof
instanceof 能够对数据类型进行严格区分,没有定义的变量会报错
二、作用域
全局作用域:任何地方都可以访问到的变量
var name="xiaoming";
function name() {
}
局部作用域:定义在函数内部的变量,函数外面访问不到,局部作用域也可以称为函数作用域
function name(){
var name="xiaoming";
}
块级作用域 (js中没有块级作用域)