JavaScript

逻辑判断:
2个可用三元运算符或逻辑运算符"||"
2个或以上个用if..else if..else条件判断语句
3个以上用switch(n){ case x:语句一;break;default:语句二; }

标识符:变量名,函数名,属性名以及函数的参数,由字母,数字,下划线_或美元符$组成,不能以数字开头,不能使用关键字保留字

变量是用于保存值的占位符,通过关键字(操作符)var来声明变量,关键字是JS内部使用的名字,保留字是为未来JS扩展使用的关键字

Math.pow(2,1024)2的1024次方,JS中数值大于等于2^1024表示正无穷大

var a=1.2,b=1.1,c=a-b;c===0.1;false,当值为浮点数时产生的特殊情况

null==undefined;true(因为undefined派生自null值)null===undefined;false

window.onload加载完成html和css后才运行JS代码,防止JS阻塞html页面加载

转义字符用反斜杠表示"" "\n"换行符 "\b"退格 "\反斜杠"(转义自己)

es6通过关键字let声明变量,声明不提前,const声明常量,值不可变

1.弱类型语言,声明变量不需要声明其数据类型
2.解释型语言,一边编译浏览器一边读取(编译型一次性翻译完成才执行代码)

构成:
1.ECMAScript,描述了JS的核心语法和基本对象
2.DOM(文档对象模型),提供访问和操作网页内容的方法和接口
3.BOM(浏览器对象模型),提供与浏览器交互的方法和接口

引入方式:
1.放入html标签中
2.外部引入js文件
3.里或后面,建议放body里否则会阻塞html页面读取

变量的类型:
1.原始数据类型(简单数据类型/基本数据类型)
2.引用数据类型(复杂数据类型)
数据类型由数据的值决定,用typeof()判断

typeof()值:
String
Number
Boolean
undefined
function
Object(Array,null)

isNaN():
判断是否为非数字值
其中NaN/undefined/object/非纯数值类型字符串等为true;
数值/纯数值型字符串/空字符串/布尔值/null/new Date()等内置对象为false
(数值类型的字符串用于判断时程序会将其隐式转换成数值)

原始数据类型:
1.String字符串由零或多个字符组成,包括字母数字符号空格等,用引号包裹,可通过加号拼接,长度length,可下标获取
2.Number包括所有数值,浮点数/整数/其他进制数值,八进制由0开头,十六进制由0x开头(浏览器打印出来的值都为十进制数值)
number类型三种特殊值:NaN,Infinity,-Infinity(科学计数法eg:123e2=12300,e为10,2为平方;NaN不等于NaN!)
3.Boolean布尔值true/false,常用来进行程序判断(不能用引号包裹否则变成字符串)
4.null(空对象指针)代表空对象的引用,可用来清空对象,typeof返回的是object! 若变量将用于保存对象,可将变量初始化为null
null通常产生于程序运行过程中,当定义的变量不再使用时,变量就会赋值为null(JS中内存自动清除机制)
5.undefined表示声明了变量但未赋值的值(未声明的变量typeof也为undefined且在其他函数中运行会报错)通常声明变量后没有赋值,程序自动赋值undefined

引用数据类型:
1.object(对象):
属性(事物固有特性)和方法(事物能做什么)的集合
定义对象是在栈内存中储存了一个指针,指向该对象的储存路径,复制对象即是复制路径,所以改变对象属性时复制拿到的值也是改变后的属性
语法:键值对的形式,键名和键值用冒号隔开,属性/方法间用逗号隔开,对象里的属性/方法(打印整个方法,调用则需加括号)通过点运算符来进行访问
2..array(数组):
数据的集合体,用来装载不同的数据类型,数据间用逗号隔开
访问(读写)数组里的元素通过元素的下标拿到,下标从零开始
创建方式:1.var arr = new Array();(若已先知数组长度可填入括号中,若写入一个以上则认为是数组内容);2.字面量表示法:var arr = [1,2,3];
3.function(函数):具有一定功能的代码块

数据类型转换:
1.toString(num)/n.toString():将数值类型转换为字符串(null与undefined报错)num代表了转换为几进制数值的字符串
2.toFixed(num):将数值类型转换为字符串,num表示数值需要保留几位,默认值为0,遵循四舍五入法则,字符串无该方法
3.parseInt(要转的字符串,字符串进制数(基数)):将字符串转换为整数(0xA=>10,最后输出值都为十进制),从头检测直至非数值之前,与number()不同,number()比较严格(开头非数值返回NaN,开头为0则忽略)
4.parseFloat():将字符串转换为浮点数,不能转换十进制以外数值的字符串,若第一个字符为0且该0不是小数点前面一位,则忽略0

强制类型转换:
1.String():强制转换为字符串,null与undefined亦可
2.Boolean():null,undefined,0,"",NaN均转换为false,其他都为true
3.Number():纯数值字符串转换为对应的数值,否则为NaN,空字符串/null/false/空数组=>0;true=>1;引用数据类型/undefined:NaN

算术运算符:
在字符串前加减乘除法运算符都可将字符串转换为数值类型
+(加法运算或拼接) - * /(若分母为零,结果为无穷大) % ++ --用于变量或者值之间的算术运算

赋值运算符:
= += -+ *= /= %=

比较运算符:(二元运算符)

< == === != !==(不仅比较值还比较类型,只有在相同类型下,才会比较其值,可看成==比较后的非运算)
比较运算符的返回值都是布尔值,非数值字符串之间的比较是通过他们的Unicode码来进行比较的

逻辑运算符:
优先级为非与或
!:取反(返回布尔值;负负得正)
&&:一假即假;若有多个操作数且都为真则返回最后一个操作数;若操作数中有一个为null / NaN / undefined,则优先返回这三个值
||:一真即真(从第一个语句开始判断,若此语句为真则不继续执行下一语句直接返回结果;当第一个语句为假时程序会继续执行直至输出结果)

条件运算符:(三元运算符)
一元运算符:自增/自减/取反
语法:语句1?语句2:语句3;若语句1成立则执行语句2,否则执行语句3

字符串对象的方法:

concat()拼接多个字符串

trim()用来去掉字符串中前后空格符

toUpperCase(),将字符串变为大写,不修改原字符串

toLowerCase(),将字符串变为小写,不修改原字符串

match()用于搜索字符串中与之匹配的字符,返回值为数组,数组里包括了字符的值和第一次出现字符的下标值

replace(n,m),用于字符串中用字符串m替换目标字符n,返回值是被替换后字符串,不改变原数组(只替换第一个n)

charAt()通过下标值拿到对应字符,若传入的值不在字符串下标值范围内则返回空字符串(charCodeAt是拿到字符的字符编码)

indexOf()搜索字符第一次出现的位置,若搜索的字符不在字符串里则返回-1,返回数值为子字符串的位置(lastIndexOf从后往前检索)

slice(n,m)用于截取字符串中一段字符返回一个新字符串;当传入一个参数则从传入的参数位置开始截取到最后一个字符;
传入两个参数则截取n-m之间的字符(包括n但不包括m);若传入的n为负数则从末尾开始截取,用字符串长度加上该负数以确定相应的位置(m也一样)

substring()同slice(),只是传入参数为负数时自动转成0,如(2,-1)会转为(0,2)自动排序

split(n,m)用于切割字符串,返回一个数组(多用于字符串转化成数组),n代表用于切割的切割符,m(可选)用于代表切割后的数组长度
注意:n这个切割符会和字符串对比,若字符串中有n这个字符则就在n这个位置将字符串切割开,否则返回只有一个元素的数组(即该字符串)

substr(n,m)用来截取一段字符串,n代表起始截取位置,m为截取长度(可选)n为负数时,传入的负值与字符串长度相加;m为负数时,返回值为空字符串

数组对象的方法:(前四种为数组的栈方法)

pop()删除数组最后一个元素,返回值为被删除的元素;会改变原来的数组(即在原数组上删除最后一个元素)

push()给数组添加元素到最后,返回新数组长度

shift()删除数组第一个元素,返回值为被删除的元素(字符串)

unshift()给数组添加元素到最前面,返回新数组的长度

join()指定字符来分割数组(默认用逗号隔开;用于把数组所有元素放入一个字符串,返回值为字符串,常用于数组转字符串)

split()字符串转数组

reverse()颠倒数组顺序,返回新数组

sort()对数组元素进行排序,返回新数组,该方法比较的是字符串,即使元素都是数值,eg:12,9,13排序为12,13,9(先比较字符串首位)
可接收一个比较函数作为参数,规定a-b为(升序)从小到大,b-a则为(降序)从大到小排列,eg:function mySort(a,b){return a-b;};console.log(arr11.sort(mySort));

concat()拼接数组返回对象,语法:arr.concat(arr1,arr2);

slice()截取数组中的一段数组,返回值是由截取的元素组成的数组,可以传两个值:(亦可传一个值,如slice(0)截取全部)
第一个值代表开始截取位置的下标值,第二个值为截取结束位置(不包括此位置的元素);若值为负数则从数组末尾开始截取,用数组长度加上该负数以确定相应的位置;

splice(n,m,k)用于删除,添加或替换元素
n为删除/添加数组元素的开始位置(若为添加时,位置是指第n个元素的前面,所以一般插到后面时是n+1,返回值为空数组);
m为删除的个数,为零时不删除元素;k为添加的元素,可添加多个(选填)

forEach(muFun(),m),可将数组元素传递给他的回调函数,相当于循环(muFun(item,index,arr)是回调函数,m可选)
回调函数有三个参数,第一代表数组元素,第二代表数组下标值,第三代表数组本身,"批量处理",改变原数组,无返回值

indexOf()用于查找数组里元素第一次出现的位置,返回值时Number,若未找到则返回-1;第一个参数代表要查找的元素,第二个参数代表从哪里开始查找(可选)

lastIndexOf()则从末尾开始查找第一个出现的某元素的位置

map()方法和forEach()方法一样,但有返回处理后的新数组,不改变原数组

filter()方法和forEach()方法传入的参数一样,筛选返回新数组,不改变原数组,若无设置返回值,则它的返回值为空数组

every()语法和foEach()方法一样,every()的返回值为布尔值,只要有一个不符合条件就返回false

some()语法和foEach()方法一样,some的返回值为布尔值,只要有一个符合条件就返回一个true

数字对象:

valueOf()

Math.abs()取绝对值

Math.round()四舍五入取整

Math.pow(x,y)返回x的y次方

Math.floor()向下取整,返回一个小于num的最大整数

Math.ceil()向上取整,返回一个大于num1的最小整数

Math.sqrt()开平方根,负数则返回NaN

Math.random()随机数,取值范围0到1(不包含1)
=取一个范围的随机数,Math.random()(最大值-最小值)+最小值;随机生成n到m的整数var n,m;Math.floor(Math.random()(m-n+1)+n)

toExponential()数字转为科学计数法

Math.PT即π,弧度 = 角度*(2π/360)
求数组中最小值min();最大值max();返回值均为Number,数组中只要有一个NaN即返回NaN

布尔对象:
valueOf()返回 Boolean 对象的原始值

日期对象:
new Date()返回当前时间,传参则会自动转换参数时间戳对应日期,亦可传最多7个参数,对应年月日等
(时间以1970年1月1日0点为基准,中国时区为8点) new前加"+"可转换时间戳
new Date().toLocaleDateString()当前当地时间字符串,格式"年/月/日"
getTime()至今的时间戳,相当于日期前加"+"转换

getFullYear()年
getMonth()月 0-11
getDate()日
getDay()星期 0-6
getHours()时
getMinutes()分
getSeconds()秒
getMilliseconds()毫秒

循环(遍历):
1.while(当循环) do...while(直到循环)

2.for(遍历数组尽量使用for代替forEach)  for...in(用于遍历对象,不适合遍历数组)

3.forEach(callback(value,index,arr){},this)为数组中含有效值的每一项执行一次callback函数

标准的for循环中的i是number类型,表示的是数组的下标,但是foreach循环中的i表示的是数组的key是string类型。

4.map((value,index,arr)=>{})返回新数组,不修改调用它的原数组本身,每个元素都是回调函数的结果 

5.reduce() 

6.filter() 

7.every()

8.some()

document.write("")向文档输出内容,""中可输出标签,多参数用逗号隔开

alert()警告框 / confirm()确认框(返回布尔值) / prompt("","提示语")提示框(返回输入值或默认值/null)

console.log("")控制台打印(console.clear()清空控制台/cpnsole.warn()输出警示/console.count()代码被运行次数/console.table()表格输出...)

你可能感兴趣的:(JavaScript)