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