1JavaScript语言:
一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
广泛应用于:PC浏览器/PC软件/手机浏览器/手机app/微信小程序/微信公众号开发/硬件开发/服务器开发/AR/VR/深度学习/机器学习
2js的使用:
Script标签
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <script type="text/javascript"> 9 var a = '你好'; 10 console.log(a); 11 </script> 12 </body> 13 </html>
Script标签将js文件进行引用
1 <script src="js/index.js" type="text/javascript" charset="utf-8"></script>
3.js的执行顺序:
Script标签内容的执行,是按顺序执行,但是加载是按照异步进行加载。
4.同步与异步:
同步:一个事情完成之后,才能做下一件事情,有等待就是同步。
异步:一个事情发起之后,下一个事情也可以立即发起,不需要等待前面一个事情完成之后才发起。
so:Script标签里面如果有代码出错,仅仅只会影响到这个script标签代码的执行。
5.运行原理:
浏览器首先会解析HTML,解析到script标签时候,会用调用JS引擎执行script标签里的代码,先会对代码预编译(一些语法纠正和变量提升处理),然后解释执行。
6.js变量的申明:
Js是弱类型语言,所以申明变量的时候,统一用var进行申明变量。如果这个变量没有申明,这个变量就会申明一个全局变量。
申明变量方式:
var b; var a,b,c; var name = "username"
未赋值的变量,会设置为undefined;
注意:js在预编译的时候,变量的声明会被提升到最上面。
全局变量:在最外层申明的变量以及在函数内部未用var申明变量(变量提升),那么就是全局变量,所有的全局变量都会在window上
局部变量:在函数内部申明的变量就是局部变量
Js变量命名规范:
必须用字母或者_或者$作为首字母,字母加_加$加数字构成变量名。
js类型:
数值类型:整数/浮点数/infinite/-infinite/nan
字符串类型:”abc”,’123’
对象:{},new object()
布尔值:true和false
Undefined:1.无申明2.有申明但是未赋值。3.没有任何属性值
Null:这是赋值为空的内容。
注意:两个字符型类型为数值的情况:只要有字符类型都按字符的拼接
1 <!DOCTYPE html>
2 <html>
3
4 <head>
5 <meta charset="utf-8" />
6 <title></title>
7
8 </head>
9
10 <body>
11
12 <h1>JavaScript 数字</h1>
13
14 <p>一个常见的错误是期望这个结果为 30:</p>
15
16 <p id="demo"></p>
17
18 <script>
19 var x = 10;
20 var y = 20;
21 document.getElementById("demo").innerHTML = "结果是:" + x + y; //字符+数值+数值
22 </script>
23
24 </body>
25
26 </html>

7.js运算:
算数运算
加 +
减 -
乘 *
除 /
求余 %
赋值运算
+=
-=
*=
/=
%=
++
--
逻辑运算
和运算:&&
或运算:||
非:!
比较运算
大于:>
大于等于:>=
小于:<
小于等于:<=
等于:==
备注:js在做比较的时候会进行转换,如果能够通过类型转换成一样的内容,就为真。
全等于:===
备注:不做任何的类型转换,直接比较
不等:!=
备注:这个在比较的时候会做类型转换,转换之后还是不能一样,才是不等
全不等!==
备注:不做任何类型转换
条件运算
条件?”为真的时候执行”:”为假的时候执行”
三元运算符
var a = 3; var b = 4 var c = a>b?"大于":"小于"; console.log(c)
8.js的流程控制和循环
if语句:
var age = 19
if(age>18){
console.log("欢迎来到我们这个网站")
}else{
console.log("对不起,你还未成年")
}
swicth:
var userType = "穷鬼VIP"
switch(userType){
case "vip":
console.log("随意看全场视频,还没有广告");
break;
case "穷鬼VIP":
console.log("随意看,但有广告");
break;
case "普通用户":
console.log("请充值,充值会让你更强大");
break;
default:
console.log("你是属于非法进入");
}
for语句:
1 for (var i=0;i<10;i++) {
2 console.log(i)
3 }
4
5
6 var arr = ['习大大向中国国际服务贸易交易会致贺信','句句箴言,品读习大大引用的诗词典故','习大大:培养一茬茬、一代代合格的红军传人']
7 var libiao = document.querySelector('#libiao')
8 for(var i=0;i<arr.length;i++){
9 libiao.innerHTML += '<li>'+ arr[i] + "</li>"
10 }
While:
1 var n = 1
2 var result=0;
3 while(n<=100){
4 result += n;
5 n++;
6 }
7 console.log(result)
8
9 var n = 1
10 var result=0;
11 do{
12
13 result += n;
14 n++;
15 }while(n<=100)
16 console.log(result)
Continue
跳过当次循环
Break
跳过整个循环块
9.js函数:
函数定义的方式
方式1:function count(a){ return x }
方式2:var count = function(){}
1 say();
2 info();
3 function say(){
4 var n = '李二';
5 console.log('张大娘')
6 }
7 var info = function(){
8 console.log('皇帝')
9 }
函数的参数
对函数调用时候,不会对参数做任何的检测。
arguments关键词:获取调用函数时候的所有参数
函数的返回值
用return直接返回对象
注意:如果没有写返回值,那么函数默认会返回undefined
10.js数组:
JavaScript的数组是可变长,里面的内容也是可以随意的替换,没有类型的限制
创建数组的方式
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 </head>
7 <body>
8 <script type="text/javascript">
9 //1、字面量的方式创建数组
10 var arr1 = ["蔡徐坤","郭敬明","范冰冰"]
11 //2、new Array()创建数组
12 var arr2 = new Array("苹果",1,"香蕉",function(){console.log(123)})
13 console.log(arr1)
14 console.log(arr2)
15
16 //数组内容的获取
17 console.log(arr1[0])
18 console.log(arr1[1])
19 arr2[3]()
20
21 //数组内容的设置
22 arr2[3] = 3
23 console.log(arr2)
24
25 //通过循环输出列表内容
26 for(var i=0;i<arr1.length;i++){
27 console.log(arr1[i])
28 }
29
30 //队列==》先进先出
31 //栈==》先进后出
32 </script>
33 </body>
34 </html>
数组实现队列的2个方法:
Push:在数组最后添加元素
Shift:在数组的最前面删除元素
数组实现栈的2个方法:
Push:在数组最后添加元素
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 </head>
7 <body>
8 <script type="text/javascript">
9 var duilie = ["范冰冰","李晨"]
10 console.log(duilie)
11 duilie.push('蔡徐坤')
12 console.log(duilie)
13 duilie.push("郭敬明")
14 console.log(duilie)
15 //push将内容添加到数组最后
16
17
18 //去掉数组的第一个元素
19 /*duilie.shift()
20 console.log(duilie)*/
21
22 //去掉数组的最后一个元素
23 /*duilie.pop()
24 console.log(duilie)*/
25
26 //在数组的第一个元素前面插入数据
27 /*duilie.unshift("雷军")
28 console.log(duilie)*/
29
30 //在duilie.slice(0,2),在数组从索引0开始切,切到索引2的位置,不包括2;
31 /*console.log(duilie.slice(0,2))
32 console.log(duilie)*/
33
34 //splice可以增加或者是删除指定元素,duilie.splice(删除或者增加索引的位置,删除多少个元素,增加的内容(可选))
35 /*console.log(duilie.splice(0,2,"迪丽热巴","古力娜扎"))
36 console.log(duilie)*/
37
38 //合并两个数组
39 duilie = duilie.concat(['葡萄','香蕉',"雪梨"])
40 //相当于for循环
41 duilie.forEach(function(item){
42 console.log(item)
43 })
44
45
46 </script>
47 </body>
48 </html>
来源:https://www.cnblogs.com/ruckly/p/10941031.html