2022-04-24
1.什么是JavaScript
javascript是一门世界上最流行的脚本语言
==一个合格的后端程序员必须精通JavaScript==
2.快速入门
2.1引入JavaScript
1.内部标签
1 | <script> |
2.外部引入
abc.js
1 | //... |
test.html
1 | <script src="abc.js"></script> |
1 | <script> |
2.2基本语法入门
1 | <script> |
2.3数据类型
数字、文本、图形、音频、视频……
==变量==
1 | var xxx = "xxx" |
==number==
js不区分小数和整数,Number
1 | 123//整数 |
==字符串==
‘abc’ “abc”
==布尔值==
true,false
==逻辑运算==
1 | && 与 |
==比较运算符==!!!重要!
1 | = |
这是js的一个缺陷,坚持不要使用==比较
须知:
- NaN===NaN,这个与所有的数值都不想等,包括自己
- 自能通过isNaN来判断这个数是否为NaN
浮点数问题
1 | console.log(1/3===(1-2/3)) |
尽量避免使用浮点数进行运算,存在精度问题
1 | math.abs(1/3-(1-2/3))<0.000000001 |
==null和undefined==
- null空
- undefined未定义
==数组==
1 | //保证代码可读性,尽量使用[] |
==对象==
1 | var person ={ |
取对象的值
1 | person.name |
2.4严格检查模式
1 |
|
3.数据类型
3.1字符串
1.字符串用单引号或双引号包裹
2.注意转义字符\
1 | \' |
3.多行字符串编写
1 | //tab 上面的引号 |
4.模板字符串
1 | //tab 上面的引号 |
5.字符串长度
1 | str.length |
6.字符串的可变性,不可变
7.大小写转换
1 | //注意这里是方法,不是属性 |
8.student.indexOf(“t”)
9.substring
1 | student.substring(1)//1到最后一个字符 |
3.2数组
Array可以包含任意的数据类型
1 | var arr =[1,2,3,4,5,6] |
1.长度
1 | arr.length |
注意:加入给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失
2.indexOf,通过元素获得下标索引
1 | arr.indexof(2) |
3.**slice()**截取Array的一部分,返回一个新的数组,类似于string中的substring
4.push(),pop()
1 | push:压入到尾部 |
5.unshift(),shift()头部
1 | unshift:压入到头部 |
6.排序sort()
1 | arr.sort() |
7.元素反转
1 | arr.reverse() |
8.concat()
1 | arr.concat([1,2,3]) |
注意:concat()并没有修改素组,只是会返回一个新的数组
9.连接符join
打印拼接素组,使用指定的字符串链接
1 | arr.join('-') |
10.多维数组
1 | arr = [[1,2][3,4],["5","6"]] |
3.3对象
若干键值对
1 | var 对象名 ={ |
js中对象,{……}表示一个对象,键值对描述属性 xxxx: xxxx,多个属性用逗号隔开,最后一个属性不加逗号!
JavaScript中的所有的键都是字符串,值是任意对象!
1.对象赋值
1 | person.name ="yulong" |
2.使用一个不存在的对象属性,不会报错!undefined
1 | person.haha |
3.动态的删减属性,通过delete删除对象的属性
1 | delete person.name |
4.动态的添加,直接给新的属性添加值即可
1 | person.haha = "haha" |
5.判断属性值是某在这个对象中! xxx in xxx
1 | 'age' in person |
6.判断一个属性是否是这个对象自身拥有的 hasOwnProperty()
1 | person.hasOwnProperty('age') |
3.4流程控制
if判断
1 | var age = 3; |
while循环
1 | while(age <100){ |
for循环
1 | for (let i =0;i<40;i++){ |
forEach循环
5.1引入的
1 | var age =[12,14,1,6,8,17,10,15,20] |
for…in
1 | for (var num in age){ |
3.5 Map 和 Set
Map:
1 | //ES6 Map |
Set: 无需不重复的集合
1 | var set =new Set([3,5,1,2,1]); |
3.6 iterator
es6新特性
遍历数组
1 | //通过for of/ for in打印数组下标 |
遍历map
1 | var map = new Map([['tom',90],['jorn',100],['jack',85]]); |
遍历set
1 | var set =new Set([3,5,1,2,1]); |