模板字符串
ES2015前,字符串拼接使用引号'', 但在换行操作和输出变量值时不方便
ES2015后, 字符串拼接使用反引号 `` ,引用变量时可以使用 ${变量名}
严格模式(了解)
- 我们都知道 js 是一个相对不很严谨的语言
- 而且开发的时候,一些代码也不是很严格要求
- 而严格模式就是对开发的时候写的一些内容做了要求
不严格的体现:
1. 声明变量可以不使用var关键字
2. 形参重复 ...
开启严格模式
"use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。
严格模式可以应用到整个脚本程序或个别函数中
<script>
'use strict'
// 下面代码书写就要按照严格模式书写
</script>
function myFunction() {
// 函数级别严格模式语法
'use strict'
y = 3.14; // 报错 (y 未定义)
}
严格模式的规则
声明变量必须有 var 关键字
声明变量时,没有var关键字,那么按照作用域规则会自动定义成全局变量
函数的形参不可以重复
声明式函数调用的时候函数内部没有 this
为什么使用严格模式
消除代码运行的一些不安全之处,保证代码运行的安全;
提高编译器效率,增加运行速度;
为未来新版本的Javascript做好铺垫。
ASCII码:
ASCII码 - as key
- 计算机只能存储 0101010 这样的二进制数字
- 那么我们的 a ~ z / A ~ Z / $ / @ /… 之类的内容也有由二进制数字组成的
- 我们可以简单的理解为, a ~ z / A ~ Z / $ / @ /… 之类的内容都有一个自己的编号,然后在计算机存储的时候,是存储的这些编号, 我们看的时候,也是通过这些编号在解析成我们要看到的内容给我们看到
ASCII码表 - 128个
GBK
汉字内码扩展规范
共收录了21003个汉字
unicode 编码
- 我们看到了,ASCII 只有这 128 个字符的编码结构
- 但是因为 ASCII 出现的比较早,而且是美国发明的,早起时候这些内容就够用了
- 因为存储一些英文的内容,传递一些英文的文章什么的都够用了
- 那么对于这个世界来说肯定是不够用的
- 因为我们的汉字没有办法存储,包括一些其他国家的语言也没有办法存储
- 所以就出现了 unicode 编码,也叫(万国码,统一码)
- unicode 对照表就是一个和 ASCII 一样的对照表,只不过变得很大很大,因为存储的内容特别的多
- 而且包含了世界上大部分国家的文字,所以我们的文字和字符现在在存储的时候,都是按照 unicode 编码转换成数字进行存储
- 我们的 UTF-8 就是一种 8 位的unicode字符集
charCodeAt方法
中文字符unicode编码大于255
简单对象Object补充:
访问对象属性
在JavaScript中,可以使用“ . ”和“ [ ] ”来访问对象的属性。
二者区别:“ . ”表示法一般作为静态对象使用时来存取属性。 而“[ ]”表示法在动态存取属性时就非常有用。
for-in 遍历对象 for-of循环遍历数组、字符串
for-in 遍历对象
语法:
for(var key in obj){
//key属性
//obj[key]
}
for-of 遍历数组、字符串、也可以遍map集合
for(var v of arr){
//v数组元素
//v字符
//map元素
}
区别
for..of与for..in的区别,以下说法都正确
A for in可以遍历对象,for of不能遍历对象
B for of可以用来遍历map集合,for in不能遍历map集合
C for in遍历数组得到的是数组的下标,for of遍历数组得到的是数组的元素
D for in遍历键 for of遍历值
总结:
for-in 可以循环遍历对象,数组,字符串
遍历对象 访问对象属性,
遍历数组,访问数组索引号,
遍历字符串,访问字符串索引号
for-of
可以遍历数组,字符串和Map(集合,后面学习),
不能遍历对象
遍历数组,访问数组元素
遍历字符串,访问字符串字符元素
访问对象的方法
在JavaScript中,只能用“ . ”来访问对象的方法。
Math:
处理数学问题, 特点:不需要创建对象,直接类型名.方法 Math.方法()随机数random
- Math.random() 这个方法是用来生成一个 0 ~ 1 之间的随机数
- 每次执行生成的数字都不一样,但是一定是 0 ~ 1 之间的
- 生成的数字包含 0 ,但是不包含 1
取整方法round,ceil,floor
ceil
floor
round
绝对值abs
Math.abs() 是返回一个数字的绝对值
最大值max
Math.max() 得到的是你传入的几个数字之中最大的那个数字
console.log(Math.max(1, 2, 3, 4, 5)) // 5
最小值min
Math对象的方法
abs(x) 返回数的绝对值
acos(x)返回数的反余弦值
asin(x)返回数的反正弦值
atan(x)以介于-π/2与π/2弧度之间的数值来返回x的反正切值
atan2(y,x) 返回从x轴到点(x,y)的角度(介于-π/2与π/2弧度之间)
ceil(x)对数进行上舍入
cos(x) 返回数的余弦
exp(x) 返回e的指数
floor(x) 对数进行下舍入
log(x) 返回数的自然对数(底为e)
max(x,y) 返回x和y中的最大值
min(x,y) 返回x和y中的最小值
pow(x,y) 返回x的y次幂
random() 返回0~1之间的随机数
round(x) 把数四舍五入为最接近的整数
sin(x) 返回数的正弦
sqrt(x)返回数的平方根
tan(x) 返回角的正切
toSource() 返回该对象的源代码
valueOf() 返回Math对象的原始值
数字转换进制:
进制
0x表示十六进制,但是js会强制转换为十进制来运算,0xa == 10 0开头表示八进制,同样强制转换为十进制来运算 010 == 8