引入方式
内部js
执行顺序
外部引入js
外部引入放在头部
内联js
变量与常量
常量
document用法
document.write(“
我是h1
”)原样输出
空格
空格
 
全角空格(一个中文大小的空格)
 
半角空格(半个中文大小的空格)
数据类型
- 字符串 string
- 数字 number
- 数组 array
- 布尔类型 boolean
- 空值 null
- 未定义 undefined
- object 对象
判断数据类型 typeof
- typeof方法返回的是字符串
- typeof null/array => “object” 空对象
- undefined( 值) => 类型也是 undefined
- 数组也是特殊格式的对象(object)
console.log注释
特殊值(数组类型 number)
Nan(not a number)非数字
Infinity 无穷大
运算符
算术运算符
隐式类型转换
-
字符串遇到"+" 会拼接形成新的字符串(无论加号在前,还是在后)
-
字符串遇到"- * / %" 。会隐式转化为数字
- 如果是纯数字类型的字符串, 转化为对应的数值
- 如果是非纯数字类型的字符串 ,转化为NaN
-
boolean值遇到算术运算符 转化为数字
-
true 1
false 0
-
-
null 遇到算术运算符,转化为数字类型 ,变成0
-
undefined 遇到算术运算符,变成NaN
强制类型转换
javascript parseInt() 函数的进制转换注意细节
https://www.jb51.net/article/33107.htm
String() 将其他类型转化为字符串类型
number() 将其他类型转化为数字类型
- 如果是纯数字类型的字符串, 转化为对应的数值
- 如果是非纯数字类型的字符串 ,转化为NaN
- 空字符串转为0
- 空格字符串转换为0
boolean() 将其他类型转为布尔类型
-
自己有实际值,转化为boolean值,则为true
-
空字符串转为boolean值,为false
-
自己本身无实际值,转化为boolean值,则为false
-
0转换为boolean则为false
-
NaN转化为boolean值为false
-
Infinity转化为boolean值,则为true
-
null 转化为boolean值,则为false
-
undefined转化为boolean值,则为false
parseInt() 将其他类型转化为十进制整数
parseInt()找到字符串中第一个非数字之前的数,转化为整数
参数
parseInt(string, radix) 有2个参数
- 第一个string 是传入的数值,
- 第二个radix是 传入数值的进制,参数radix 可以忽略,默认为 10,各种进制的数转换为 十进制整数
parseFloat() 将其他类型转化为浮点数(小数)
精度丢失问题
关系运算符
优先级
单个等号代表赋值操作
两个等号代表相等(只比较数值,忽略类型,即使等号左右两边的数类型不一样)
!= 比较不相等(不比较类型)
三个等号代表全等(既比较数值,也比较类型)
!= 比较不全相等(比较类型和数值)
关系运算符,返回布尔值
-
字符串和字符串笔记,按照ASCIL码对照表进行比较(先比较第一位)
-
如果是字符串和数字比较,字符串隐式转化为数字
- 如果是布尔类型和数字比较,布尔类型隐式转换为数字
-
null和数字比较,null不转化(没有可比性,都是false,仅限于等于比较的情况)
-
underfined和数字比较 ,underfined不转化
-
null和undefined 比较 数值相等,类型不相等
Math计算
相关方法
Math.random() 随机生成0-1的随机数(取得到0,取不到1)
Math.min() 接收多个值,返回最小值
Math.max() 接收多个值,返回最大值
Math.pow(m,n) m的n次方
Math.ceil() 向上取整
Math.floor() 向下取整
Math.round( ) 四舍五入
Math.abs() 绝对值
相关属性
Math.PI
float类型丢失精度问题
解决办法
-
在java中,使用BigDecimal,而且需要在构造参数使用String类型
-
把两个数扩大100倍,运算之后,再缩小100倍
-
num.toFixed(2) 保留两位小数(返回是是字符串)
number.toString() 将数字转化为字符串
进制转换
参考链接;https://blog.csdn.net/final__static/article/details/89405945