JS的引入方法
- 行内式
<div onclick="alert(111)"></div>
- 内嵌式
<script>
alert(111);
</script>
- 外链式
<script src="./javascript.js"></script>
变量
容器,拿来装东西的,但其实并不完全准确,更应该是类似于一个门牌号/房间名,用来指向和指定某一个用来装东西的空间/房间
变量声明
- var box;(var 是固定关键字,box是变量,变量可以更改,只要遵循规范即可)
变量赋值
- box = 100;将100复制给box
声明和赋值可以同时进行
命名规范
- 数字/字母/下划线/$组成,不能以数字开头
- 遵循语义化
- 小驼峰命名法 var myName
- 大驼峰命名法(帕斯卡命名法) var MyName
- 下划线命名法 var my_Name
- 区分大小写
- 不能以关键字和保留字命名
- 关键字 有特殊含义和功能的名字
- 保留字 还不是关键字,但是之后有可能成为关键字
数据类型
- 值类型/原始值类型/基本数据类型
- number 数字
- 有效数字 能看见的能想到的都是
- 非有效数字 NaN (Not a Number)
- string 字符串 用 " ’ ` 包裹
- boolean 布尔值 true 和false
- null 只有一种值就是null
- undefined 只有一种值就是undefined
- symbol(唯一值)不会和别人相等 用法:var aa = Symbol(165/“www”);
- bigint 大数 用来表示很大的数字 用法:在数字后面加n,例如:var num = 564654654654654321651n;
- number 数字
- 对象类型/引用数据类型
-
object 对象
-
array 数组
-
原始值类型之间数据类型转换
-
其他数据类型转为number类型
- 字符串转换
有效数字会被转换成十进制数字,
Number('0x10')//16
-console.log(Number('1.1'));//1.1
-console.log(Number('10px'));//NaN
-console.log(Number('-10'));//-10
-console.log(Number('true'));//NaN
-console.log(Number(''));//0
-console.log(Number(' '));//0
-console.log(Number(' 7 '));//7
非有效数字就是转为NaN- Boolean转换
true为1 false为0 - null转换
为0 - undefined 转换
console.log(Number(undefined));//NaN
console.log(Number());//0
- symbol不能转换为number
- bigint 转换 正常转换,数字过大显示为科学计数法
-
其他数据类型转为string类型
- 加""
-
其他数据类型转为boolean类型
除了null undefined NAN o ''是false 其余都是true
parseFloat
取浮点数 参数必须是字符串,不然会toString()转换
parseInt
取整 参数必须是字符串,不然会toString()转换
isNaN
参数是number Number()转换
toFixed(n) 保留n位小数
四舍六入 五看情况
var num = 1.234;
num.toFixed(2)
BigInt
console.log(10n);// 10n
console.log(BigInt('10'));//10n
console.log(BigInt(1566666666666465655555555555132));
//1566666666666465565183387369472n 后面的数字就会不一样,因为这个数字已经超出了范围,损失了精度,可以用下面方法来避免,给数字加上引号
console.log(BigInt("1566666666666465655555555555132"));
//1566666666666465655555555555132n
最大安全整数 最小安全整数
Number.MAX_SAFE_INTEGER 2**53-1
Number.MIN_SAFE_INTEGER -2**53+1
object 对象数据类型
用大括号包裹住的键值对,键值对用冒号链接,键值对之间用逗号隔开
属性值可以是任意数据类型,或者说属性值必须是数据类型
属性名只能是字符串或者是symbol类型
var obj = {
num:100,
age:18,
0:1515
}
- 改
- 增
- 只能增加字符串和symbol
- 属性名不能重复
- 删
- 软删除
obj.num = null - 硬删除
delete obj.num
- 软删除
- 查
- 点语法和中括号语法 obj.age obj[‘age’]
- 中括号语法——obj[a],会先将a用String()函数转换为字符串obj[“a”]
- 中括号语法必须加引号,
- 如果查找一个不存在的属性,那么就是undefined
- 如果属性名是数字,必须用中括号,可以省略引号 obj[0]