javascript 变量声明详解
2020年5月26日大约 2 分钟约 522 字
js变量可以保持的数据类型:字符串、数值、布尔值、数组、对象等、
js的原始数据有:字符串、数字、布尔、undefined。
js变量命名规则:
- 变量名称仅能包含字母、数字、下划线和美元符号。
- 变量名称不能以数字开头。
var
声明变量
目前使用var
声明变量已经不常用了。
通过var
声明的变量,只有(在函数外声明的)全局作用域和函数作用域(在函数内声明的)
// 声明一个变量但不赋值,缺省值为undefined
var username
// 声明一个变量并赋值为小数
var pi = 3.14
// 同时声明多个变量
var username = "tom", password = "123"
let和const
声明
通过let
和const
声明变量
// 用let声明变量只有(大括号内的)块级作用域,仅能在块内使用
let username = 'tom'
// const与let类似,只是const声明的变量是只读的,不可重新赋值
const password = '123'
- 如果在let在块外声明,那么也是全局作用域,可以说全局就是最大的块。
- const只读变量是指"引用"是只读不可修改的。如果赋值成数组或对象,数组和对象的内容是可以修改的,只是不可以整个重新赋值给整体换掉。
- 同作用域下,一般情况下重复声明变量会报错哦,不过
let
声明的变量可以用let
再次声明覆盖掉。
typeof
typeof [ 1, 2, 3, 4 ] // 返回 "object" (并非 "array",因为在js中数组即对象)、
typeof { username: 'Bill', password: "123" } // 返回 "object"
typeof function myFunc(){} // 返回 "function"
typeof null // 返回 "object"
typeof undefined // undefined
// undefined和null的值相等,但类型不相等。
null == undefined // true
null === undefined // false
- 在js中,
null
是指"不存在的事物",不过js中null
的数据类型是一个对象。 - 建议使用
===
,==
总是在比较之前尽量进行类型转换来匹配类型