JavaScript
第一章
js是弱类型编程语言,表现在:
1. 声明变量时,不用规定变量存储的数据类型
2. 赋值时,动态决定变量的数据类型,同一个变量,先后可保存不同类型的数据
3. 运算时,js会根据需要,动态转换数据的类型
标识符丶变量声明:
所有 JavaScript 变量必须以唯一的名称来标识,这些唯一的名称称为标识符。
声明
构造变量名称(唯一标识符)的通用规则:
- 名称可包含字母、数字、下划线和美元符号
- 名称必须以字母开头
- 名称也可以 $ 和 _ 开头(但是在本教程中我们不会这么做)
- 名称对大小写敏感(y 和 Y 是不同的变量)
- 保留字(比如 JavaScript 的关键词)无法用作变量名称
变量声明:var
变量赋值:=
取变量值(使用变量名等效于使用变量中的值)
声明提前:程序开始执行前,将所有var声明的变量提前到开始位置,赋值留在原地(js在解析的时候总是会将var,function这类关键词的声明语句提升至作用域的最顶部(注意:这里只会提升声明的部分,赋值不会被提升))
数据类型:
https://www.cnblogs.com/chargeworld/articles/11372894.html
js的变量对比数据库:
js中的变量 | 数据库 |
内存中 | 硬盘上的文件 |
临时的 | 持久的 |
客户端 | 服务器端只存一份 |
全局变量与局部变量:
- 变量分为“全局变量”和“局部变量”,“全局变量”申明在函数外部,可供所有函数使用,而“局部变量”申明在函数体内部,只能在定义该变量的函数体内使用。
- 在函数体内,局部变量的优先级高于全局变量。
- 函数体内部可以直接得到外部的全局变量,但是外部要得到函数体内部的局部变量是不行的。但是,通过在函数体内部再定义一个函数返回局部变量,再从外部调用函数就能实现了(闭包)
类型转换:
表达式:由数据,变量和运算符组成的一个公式,每个表达式默认都从左向右,两两计算,*每个表达式有且仅有一个运算结果!*
1. 隐式转换:无需程序员干预,js自动完成的类型转换
隐式转换,仅影响表达式的运算结果,不影响变量中存储的实际值。
算数计算中,一切类型都隐式转为number类型,再计算
特例:+运算中,只要有一方是字符串,两数据都转为字符串,且+运算变为字符串拼接!
2. 强制转换:程序员通过主动调用专门函数,执行转换
js中,一切数据都有toString方法
NaN:Not a Number-->说明运算中包含了无法转为数字的值
不是数字 的 数字
NaN和任何数据做计算,永远返回NaN
typeof(x): 专门用于判断x的数据类型,返回数据类型名
typeof(NaN): number