变量:JavaScript 变量是存储数据值的容器。
变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
变量声明
var (永远不要用,垃圾js带来的垃圾语法)
const 常量(1.声明赋值在一行。2.只能赋值一次)
let 变量(1.不能重复声明。2.声明之前不能使用)
数据类型
一、基本数据类型(值类型)
1.字符串类型/String
2.数字类型/Number
3.布尔类型/Boolean
4.Null
5.Undefined
二、复杂数据类型(引用类型)
1.对象类型/Object
2.数组类型/Array
3.函数类型/Function
变量的命名规则:
(1)驼峰命名法: getElementById/ userName…
(2)变量必须以字母, _ , $为开头;
(3)变量中可以包含数字,但是不能以数字开头;
(4)变量不能以JS中的关键字命名;
(5)变量长度不能超出255个字符;
(6)变量 区分大小写(表示不同的变量userName, username)
(7)变量可以以中文命名,但是不 建议 很low
匈牙利命名风格:
对象o Object 比如:oDiv
数组a Array 比如:aItems
字符串s String 比如:sUserName
整数i Integer 比如:iItemCount
布尔值b Boolean 比如:bIsComplete
浮点数f Float 比如:fPrice
函数fn Function 比如:fnHandler
正则表达式re RegExp 比如:reEmailCheck
数据类型之间的转换
一.转换成字符串类型:
- 变量+“” 或者 变量+“abc”
- String(变量)
- 变量.toSting() 注意:undefined和null不可以
toFixed(x)
把数字转换为字符串,结果的小数点后有指定位数的数字。
二.任何简单类型转换成Number
1.变量 - * /一个数字(有非数字字符会出现NaN)
2.Number(变量)(有非数字字符会出现NaN)
3.parseInt()和parseFloat()(译为取整和取浮点数)
parseInt(变量):如果变量中首个字符为字母则结果为NaN。
否则取出现首个非数字前的整数。
parseFloat(变量):如果变量中首个字符为字母则结果为NaN。
否则取出现首个非数字前的浮点数。(没有小数取整)
x - 0 (一般用这种,最常用,因为好理解)(ts禁用)
+x (取正的意思,容易理解错)
三.转换布尔型
Boolean()方法,字符串转布尔,空字符串为false,其余都是true;null和undefined都会转换为false
!!x (老手用这个)但,不要总想把一些东西变成布尔,或许可以直接判断在不在:if (x!==undefined)
对象转字符串
JSON.stringify()
字符串转对象
JSON.parse()
隐式转换
字符串和数字之间进行减、乘、除、取模运算、比较运算 时,自动把字符串转换为数字
加法运算 则是将数字看成字符串进行拼接
数值型+字符串=字符串
数值型+布尔型=数值型
布尔型+字符串=字符串
五个 falsy 值:
所有的值里面,只有5个值,变成布尔是 false,其他的值都是 true (最好背下来)
number (0,NaN)
空字符串("" or ‘’ or ``)
null (它本身)
undefined (它本身)
所有的对象都是 true
parseInt(‘011’) 是多少 //11
以前 0 开头的就是八进制,后来 ES 升级了,几进制是由第二个参数决定的,默认是10。
比如:
parseInt('011',8) // 9
parseInt('011',10) // 11
数组展开
…(三个点表始拷贝)
let a1 = [1,2,3];
let a2 = [4,5,6];
lat a3 = [...a1,...a2];
console.log(a3) //[1,2,3,4,5,6]
对象展开
let o1 = { name:'sparks', age: 18};
let o2 = { nation:'China'};
let o3 = {...o1,...o2};
console.log(o3) // {name:'frank', age: 18, nation: "China"}