内置函数
alert警告框
1. <script type="text/javascript"> 2. alert("hello"); 3. alert('hello'); 4. alert(hello); 5. </script> 6. //弹框两次,alert的内容必须由单引号或者双引号引用。
promopt提示框
1. <script type="text/javascript"> 2. prompt("hello"); 3. prompt('hello'); 4. </script>
console控制台
1. <script type="text/javascript"> 2. //控制台打印 3. console.log('coleak1'); 4. console.log('coleak2',"coleak3"); 5. </script>
字面量
数字型
整数,小数,特殊值
1. <script type="text/javascript"> 2. console.log(6e2); 3. console.log(3.14e2); 4. </script>
600,314
1. <script type="text/javascript"> 2. console.log(-.45); 3. console.log(.125); 4. </script>
-0.45,0.125
1. <script type="text/javascript"> 2. console.log(0.1+0.2); 3. console.log(.1+0.4); 4. console.log(.3+0.4); 5. </script>
0.30000000000000004,0.1+0.2比较特殊,二进制运算保留位数问题
0.5
0.7
Infinity
数字范围在-2^53~2^53之间,超过范围用infinity表示(也有正无穷和负无穷之分)
1. <script type="text/javascript"> 2. console.log(-Infinity); 3. console.log(6E1243453); 4. </script>
-Infinity
Infinity
NaN
1. <script type="text/javascript"> 2. console.log(0/0); 3. </script>
NaN,注意1/0为Infinity
字符串型
1. <script type="text/javascript"> 2. console.log('666'); 3. console.log(666); 4. </script>
打印结果分别为黑色字符串和蓝色整形
变量
声明与赋值
1. <script type="text/javascript"> 2. var a=10; 3. var b; 4. b=20; 5. console.log(a,b); 6. </script>
打印结果为蓝色的10 20
1. <script type="text/javascript"> 2. var b; 3. console.log(b); 4. </script>
打印结果为:undefined
1. <script type="text/javascript"> 2. var b=100; 3. console.log(b); 4. console.log('b'); 5. </script>
100
b
1. <script type="text/javascript"> 2. console.log(b); 3. var b=100; 4. console.log(b); 5. </script>
undefined
100
注:各大浏览器的解析器会把变量声明提升到当前作用域的最上方
类型检测
1. <script type="text/javascript"> 2. console.log(typeof "666"); 3. console.log(typeof 123); 4. console.log(typeof 3.14); 5. console.log(typeof Infinity); 6. console.log(typeof NaN); 7. console.log(typeof true); 8. console.log(typeof undefined); 9. console.log(typeof null); 10. var age = 666; 11. age = "111"; 12. console.log(typeof age); 13. </script>
string
number
number
number
number
boolean
undefined
object,但是null属于NULL类型
string
类型转换
连字符+
1. <script type="text/javascript"> 2. var age=11; 3. var name="coleak"; 4. console.log(typeof (age+name)); 5. console.log(age+name); 6. </script>
string
11coleak
parseint parsefloat
1. <script type="text/javascript"> 2. console.log(parseInt("666")); 3. console.log(parseInt("666.555")); 4. console.log(parseInt("coleak")); 5. console.log(parseInt("666coleak")); 6. console.log(parseFloat("666.66coleak")); 7. console.log(parseFloat("666coleak")); 8. </script>
666
666
NaN
666
666.66
666
1. <script type="text/javascript"> 2. var age=prompt("请输入你的年龄"); 3. console.log(typeof age); 4. console.log("你的年龄是"+age+"岁"); 5. </script>
string
你的年龄是100岁
1. <script type="text/javascript"> 2. console.log(true + 66); 3. console.log(false * 88); 4. console.log(undefined / 33); 5. console.log(null - 888); 6. console.log(true + null); 7. </script>
67
0
NaN
-888
1
比较运算符
> |
大于 |
>= |
大于等于 |
< |
小于 |
<= |
小于等于 |
== |
相等 |
!= |
不等 |
=== |
全等 |
!== |
不全等 |
1. <script type="text/javascript"> 2. console.log(99==99); 3. console.log(99=="99"); 4. console.log(99===99); 5. console.log(99==='99'); 6. </script>
true
true
true
false
逻辑运算符
逻辑运算符一共三个:逻辑与&&、逻辑或||、逻辑非!
1. <script type="text/javascript"> 2. console.log(0 && 99); 3. console.log(135 && 6); 4. console.log(NaN && Infinity); 5. console.log(null && undefined); 6. console.log("张三" && "李四"); 7. console.log(0||NaN); 8. console.log(123 || 456); 9. console.log("" || Infinity); 10. console.log(undefined||"贾称号"); 11. console.log(3 > 6 && 99 < 22); 12. console.log(66 < 100 &&"coleak"); 13. </script>
0
(索引):14 6
(索引):15 NaN
(索引):16 null
(索引):17 李四
(索引):18 NaN
(索引):19 123
(索引):20 Infinity
(索引):21 贾称号
(索引):22 false
(索引):23 coleak
条件句
if else
1. <script type="text/javascript"> 2. //用户输入一个分数 3. var score = prompt("请你输入一个分数"); 4. if(score >= 60){ 5. alert("及格了"); 6. }else{ 7. alert("挂科啦"); 8. } 9. </script>
1. <script type="text/javascript"> 2. var score = prompt("请你输入一个分数"); 3. if(score < 60){ 4. alert("来补考"); 5. } 6. else if(score < 70) 7. { 8. alert("及格了"); 9. } 10. else if(score < 90) 11. { 12. alert("良好"); 13. } 14. else{ 15. alert("优秀") 16. } 17. </script>
switch
- switch条件语句的条件,可以是变量(存储任意类型数据)。
- case后面紧随条件语句情况。
- break关键字的作用是终止、打破switch条件语句。执行条件语句后面代码。
- default关键字,可以理解为else,对于上面分支条件进行全部否定。
break,continue
while
1. <script type="text/javascript"> 2. var num = 0 ; 3. do{ 4. num++; 5. console.log(num); 6. }while(num < 10); 7. </script>
1. <script type="text/javascript"> 2. do{ 3. var a = parseInt(Math.random()*10); 4. var b = parseInt(Math.random()*10); 5. }while(a==0&&b==0); 6. console.log(a,b); 7. </script> 8. //在控制台中输出两个随机数字【0~9】,且两者不同同时为零。
赋值运算符
= 、 +=、-=、*=、/=、%=、自增 ++ 、自减 --
函数
一种关键字function定义函数、表达式形式函数
关键字形式函数
关键字形式函数,需要通过关键字function进行声明、定义。函数在JS当中属于Object引用类型数据。函数如果只是声明、但是没有调用。函数体里面代码不会运行。如下,因为没有调用所以不会报错。
1. <script type="text/javascript"> 2. function func (){ 3. 乱七八糟瞎写一通 4. } 5. // func(); 6. </script>
变量认知
局部变量只能在函数体中使用。
全局变量:除了局部变量以外的都是全局变量,
全局变量,可以在JS行为层中任意地方使用。
作用域
1. <script type="text/javascript"> 2. var num = 66; 3. function fun (){ 4. var num = 99; 5. console.log(num); 6. } 7. fun(); 8. console.log(num); 9. </script>
99,66
1. <script type="text/javascript"> 2. var num = 66; 3. function fun (){ 4. console.log(num); 5. var num = 99; 6. } 7. fun(); 8. </script>
undefined
在JS当中任何语句都阻挡不了变量声明部分提升,会提升到当前作用域最上方。
表达式形式函数
就是将关键字function定义的函数赋值给变量形式
1. <script type="text/javascript"> 2. //表达式形式函数 3. var fun = function(){ 4. var a = 666; 5. var b = 111; 6. console.log(a + b); 7. } 8. fun(); 9. </script>
- 关键字形式函数可以在声明之前、声明之后调用。
- 由于解析器,可以将关键字形式函数声明部分提升到当前作用域最上方。
- 表达式形式函数:只能在声明之后才可以调用。
- 表达式形式函数:由于变量声明部分提升(提升到当前作用域最上方),因此是undefined。
IIFE
在声明表达式形式函数的同时立刻马上执行一次
1. <script type="text/javascript"> 2. //IIFE:声明 表达式形式函数同时 立刻、马上执行一次 3. //表达式形式函数的 声明部分 4. var fun = function (){ 5. console.log('我执行了') 6. }(); 7. </script>
199,69
数组
1. <script type="text/javascript"> 2. //数组:可以存储任意类型的元素 3. var arr = ["吃饭","睡觉","打豆豆",true,NaN]; 4. //读取数据:可以利用枚举法获取数组里面元素 5. console.log(arr[0]); 6. console.log(arr[1]); 7. console.log(arr[4]); 8. console.log(arr[99]); 9. </script>
吃饭
睡觉
NaN
undefined
1. <script type="text/javascript"> 2. //数组:可以存储任意类型的元素 3. var arr = ["吃饭","睡觉","打豆豆",true,NaN]; 4. //读取数据:可以利用枚举法获取数组里面元素 5. console.log(arr[0]); 6. console.log(arr[1]); 7. console.log(arr[4]); 8. console.log(arr[99]); 9. //修改已有的数据 10. arr[1] = "学习"; 11. arr[4] = '小帅哥'; 12. //给数组添加新的数据 13. arr[5] = false; 14. arr[999] = 'coleak'; 15. console.log(arr); 16. </script>
吃饭
睡觉
NaN
undefined
(1000) ['吃饭', '学习', '打豆豆', true, '小帅哥', false, 空 ã993, 'coleak']
1. <script type="text/javascript"> 2. //声明一个数组 3. var arr = ["吃饭","睡觉","打豆豆",true,[1,2,3]]; 4. //length属性:获取当前数组的元素总个数 5. console.log(arr.length); 6. console.log(arr[4][1]); 7. </script>
5
2
1. <script type="text/javascript"> 2. //数组 3. var arr = ["小鸡","三饼","四条","白板"]; 4. //push:可以在数组的尾处添加一个或者多个元素 5. arr.push("曹操"); 6. arr.push("刘备",NaN,"coleak"); 7. console.log(arr); 8. //数组 9. var arr1 = ['手机','电视','彩电','洗衣机']; 10. //pop:可以在数组的尾处移除一个元素 11. arr1.pop(); 12. arr1.pop(); 13. console.log(arr1); 14. </script>
(8) ['小鸡', '三饼', '四条', '白板', '曹操', '刘备', NaN, 'coleak']
(2) ['手机', '电视']
备注:
- unshift:可以向数组头部添加一个或者是多个元素
- shift:可以向数组的头部移除一个元素
- join:主要的作用是可以通过某一个字符将数组拼接转换为字符串。
- reverse:可以把当前的数组的元素进行倒置。
- 数组的join方法:可以通过某一个字符串将数组转换为一个字符串。【对起始数组没有任何影响】
- 数组的reverse方法:可以将当前的数组的元素进行倒置。
1. <script type="text/javascript"> 2. //数组 3. var arr = [1,2,3,4,5,6]; 4. //join:可以通过某一个字符将数组转化为字符串 5. var str = arr.join("*"); 6. var str1 = arr.join(''); 7. console.log(arr,str,str1); 8. //数组 9. var arr = ['北京',"上海",'深圳','广州']; 10. arr.reverse(); 11. console.log(arr); 12. </script>
(6) [1, 2, 3, 4, 5, 6] '1*2*3*4*5*6' '123456'
(4) ['广州', '深圳', '上海', '北京']
- indexOf:它可以获取数组当中某一个元素的索引值【下脚标】
- includes:它主要的作用是检测某一个元素是不是当前这个数组的。如果是【返回布尔值真】,否则【返回布尔值假】
1. <script type="text/javascript"> 2. //数组 3. var arr = ['吃饭','睡觉','打豆豆','烫头']; 4. //indexOf:这个方法主要的作用是可以获取到某一个元素的索引值 5. console.log(arr.indexOf("吃饭")); 6. console.log(arr.indexOf('打豆豆')); 7. console.log(arr.indexOf('666')); 8. //includes:这个方法主要的作用是检测数据是不是当前数组的 9. console.log(arr.includes("吃饭")); 10. console.log(arr.includes('coleak')); 11. </script>
0
2
-1
true
false
- slice:从起始数组当中切割出一个新的子数组
- splice:可以对数组进行切割、插入、替换。
- slice方法:数组通过这个方法可以切割出一个新的数组【slice对于起始数组没有任何影响】
- slice方法:传递参数至少一个、最多两个参数。【起始索引值、结束索引值)
- splice:可以对于起始数组进行切割,返回一个新数组【对于起始数组有影响】
- 第一个参数:切割的起始位置索引值,第二个参数:切割元素的长度
1. <script type="text/javascript"> 2. //数组 3. var arr = ['张飞','刘备','关羽','马超','黄忠','曹操']; 4. //slice:主要的作用是切割某一个数组并且返回一个新的数组 5. //这个方法传参至少一个参数【都是数组的索引值】 6. var newArr = arr.slice(2); 7. var newArr1= arr.slice(1,3); 8. console.log(newArr); 9. console.log(newArr1); 10. console.log(arr); 11. </script>
(4) ['关羽', '马超', '黄忠', '曹操']
(2) ['刘备', '关羽']
(6) ['张飞', '刘备', '关羽', '马超', '黄忠', '曹操']
1. <script type="text/javascript"> 2. //数组 3. var arr = [55,33,21,88,57,48,29]; 4. //splice:可以对于当前数组进行切割、插入、替换元素操作 5. //切割:第一个参数切割起始位置索引值 6. //传递一个 7. var newArr1 = arr.splice(2,2); 8. // console.log(newArr); 9. //传递两个参数:第一个参数代表的是切割起始位置、第二个参数切割长度 10. var newArr2 = arr.splice(2); 11. console.log(newArr1); 12. console.log(newArr2); 13. console.log(arr); 14. </script>
(2) [21, 88]
(3) [57, 48, 29]
(2) [55, 33]
字符串
1. <script type="text/javascript"> 2. var str = "我爱你我的祖国"; 3. console.log(str.length); 4. </script>
7
- indexOf:获取到第一个匹配到的字符的索引值。
- lastIndexOf:获取到的最后一个匹配到的字符的索引值。
1. <script type="text/javascript"> 2. //indexOf:获取到一个匹配到的字符串的 索引值 3. var str = "我爱你我的祖国"; 4. console.log(str.indexOf("我")); 5. console.log(str.indexOf('666')); 6. console.log(str.lastIndexOf('我')); 7. </script>
0
-1
3
- toLowerCase:将字符串中英文字符变为小写
- toUpperCase:将字符串中英文字符变为大写
1. <script type="text/javascript"> 2. var str = "我喜欢英文aBcD"; 3. var newStr = str.toUpperCase(); 4. var newStr1 = str.toLowerCase(); 5. console.log(newStr); 6. console.log(newStr1); 7. console.log(str); 8. </script>
我喜欢英文ABCD
我喜欢英文abcd
我喜欢英文aBcD
- search:它的作用是可以获取到某一个字符的索引值。
- split:它的作用是可以将字符串通过某一个字符切割为数组。
1. <script type="text/javascript"> 2. var str = "我是祖国的花骨朵"; 3. //search:获取到某一个字符的索引值 4. console.log(str.indexOf("祖")); 5. console.log(str.search("祖")); 6. </script> 7. <script type="text/javascript"> 8. var str = "我今天买了一个华为手机花了我5888"; 9. //split:可以将字符串通过某一个字符分割为一个数组 10. var arr = str.split("华"); 11. var arr1 = str.split(""); 12. console.log(arr); 13. console.log(arr1); 14. </script>
2
2
(2) ['我今天买了一个', '为手机花了我5888']
(18) ['我', '今', '天', '买', '了', '一', '个', '华', '为', '手', '机', '花', '了', '我', '5', '8', '8', '8']
- substring:它是字符串方法,主要的作用是在父串当中切割出一个子串
- str.substring(起始索引值,结束索引值) 包含起始索引值、不包含结束索引值
- substr:它也是字符串方法,它主要的作用也是从父串当中切割出一个子串
- str.substr(起始索引值,切割长度)
- replace:可以替换某一个字符串中复合条件的字符进行替换。
- match:可以进行将某一个字符串中符合条件的第一个字符匹配出来,返回的是一个数组。
1. <script type="text/javascript"> 2. var str = "我今天买了一个华为手机,花了我5688元"; 3. //replace:可以将某一个字符串中符合条件的字符进行替换 4. var newStr = str.replace("华为","vivo"); 5. console.log(newStr); 6. console.log(str); 7. </script> 8. <script type="text/javascript"> 9. var str = "coleakayuexiao"; 10. //match:可以将某一个字符串中第一个符合条件的字符匹配出来,返回一个数组 11. var arr = str.match("a"); 12. console.log(arr); 13. </script>
我今天买了一个vivo手机,花了我5688元
我今天买了一个华为手机,花了我5688元
['a', index: 4, input: 'coleakayuexiao', groups: undefined]