特点
- 不完善
- 有很多默认遵守的规则
语法
-
注释:
//空* #单行注释 /* */ #多行注释
-
书写位置
1. <head> <script>第一种位置</script> </head> <body> 2. 第二种位置body底部 </body> 3.直接写一个js脚本,引入 <script src=''>第三种方式</script> 4.在浏览器控制台书写
-
规范
; 结束符 代码报错了,页面依然正常显示
-
变量
- 定义方法
var name="" let name="" #es6新语法,作用域比var小 const NAME="" #常量定义,不允许修改
-
数据类型:
-
类型
-
Number=int+float
- 类型转换:parseInt var/parseFloat(var)
-
string
多行字符 var a=`as bd dc ed cd` 格式化字符串 var b= `my name is ${a}` 拼接字符串 var c=a+b 常用方法 .length .trim() .trimLeft() .trimRight() .indexof("") #字符的索引 .charAt(n) #索引为n的字符 .substring(a,b) #切片 索引a到b,不能用负索引? .toLowerCase() #转小写 .toUpperCase() #转大写 .split('a',n) #用a切分出2个元素 .concat(a,b,c) #与a,b,c拼一起 .toString() #强制类型转换为字符串
-
undefined 和null
- null 空,指定清空变量时用
- undefined 声明了一个变量但是没有做初始化
-
bollean=true/false
- true:others
- false:空字符串、0、null、undefined、NaN
- 类型转换:Boolean(var)
-
object
-
-
方法:
- typeof(var) 查看类型
- parseInt(var) /parseFloat(var)字符串转number
- NaN = not a number
-
-
运算符
-
算数运算符
- +/ -*/()% #加减乘除,优先运算,取余
- 任何有NaN参加的运算结果都是NaN
- null 运算中转为0,undefined转为NaN
-
比较运算符
> < <= >= == #相等 != === #全等,判断数据类型 !== #不全等 Infinity #无穷大 字符串比较按照ASCII码顺序 比较顺序:从前往后
-
逻辑运算符
&& #与 || #或 ! #非
-
赋值运算符
= += -= *= /= %= ++ #递增 -- #递减
-
一元运算符
var a=10 var res1= ++a #res1=12?? var res2 =a++ #res2=11 var res1= --a #res1=8?? var res2 =a-- #res2=9
-
运算优先级()>一元>算数>比较>逻辑>赋值
-
-
流程控制
-
if判断
if (条件){结果}else if(条件){结果}else{结果}
-
switch-case
switch (num){case0:***;break; case1:***;break; case2:***;break; default:*** } #num用来选择case;如果没有break,case1执行完了就会依次往下
-
for
for (let i=0;i<10;i++){console.log(i)} #打印0-9
-
while
while (i<100){console.log(i)}
-
do while :后侧循环,最少执行一次
do{console.log(i)}while(i<100)
-
三元运算符
var res=1>2?4:6 #?前为条件, :前后为条件成立或不成立的值(如果1>2则res=4,否则res=6)
-
-
数组
-
定义
var arr=[] var arr=new Array()
-
方法
arr.length arr.forEach((item,index)=>{console.log(`${index}:${item}`)})#打印索引:值 arr.forEach(function (item,index) { console.log(`Element at index ${index}: ${item}`); }); for (const item of arr){console.log(item)} arr.concat(arr2) #arr本身不变,生成第三个 arr.join(',') #用,将arr数组中的元素链接为字符串 arr.pop() #删除arr的最后一个元素,返回值是删除的那个元素 arr.shift() #删除arr的第一个元素,返回值是删除的那个元素 arr.unshift('a') #在arr数组开头插入字符a arr.push('a') #在arr数组结尾插入字符a arr.reverse() #翻转数组 arr.sort() #排序 arr.slice(s,e) #截取s到e子数组 arr.splice(a,c,'c',...)#从下标a开始删除c个元素,插入字符c... arr.toString() arr.valueof() arr.indexof('a') arr.lastIndexOf('a') arr.map(a=>a*a) arr.filter(a=>a%2===0) arr.every(a=>a)?? #all arr.some(a=>a) #any arr.reduce((total,num)=>total+num,0)?? arr.rightReduce((total,num)=>total+num,0)??
-
-
函数对象
-
console.log(var) #打印 print
-
alert() #弹框显示
-
prompt(var) #输入框 input
-
定义:参数传多传少一样执行,不报错
fuction fun(a,b){...return...}
-
参数
-
匿名函数
-
递归
-
作用域
-
箭头函数
-
-
内置方法
-
对象
- 对象字面量:var obj={}
- var obj= new object()