操作符
其他基本类型转换成Number
- null、undefined、Boolean转化为number,可通过typeof检测数据类型
Number(null); //0typeof Number(null); //numberNumber(undefined); //0typeof Number(null); //numberNumber(true); //1Number(true); //0typeof Number(null); //number复制代码
- 字符串转换成number类型
Number()
用来执行类型转换 a. 如果字符串中只包含数字时,将其转换为十进制数值,忽略前导0 b. 如果字符串中包含有效浮点格式,如“1.1”,将其转换为对应的浮点数字,忽略前导0 c. 如果字符串中包含有效的十六进制格式,如“0xf”,将其转换为相同大小的十进制数值 d. 如果字符串为空,将其转换为0 e. 如果字符串中包含除上述格式之外的字符,则将其转换为NaN,否则会返回NaN。 (NaN,即非数值(Not a Number)是一个特殊的值,这个数值表示本来要返回数值 的操作数未返回数值的情况(这样就不会抛出错误了))
Number('1.23') //1.23Number('+1.23') //1.23Number('0xf') //15Number() //0Number('-1.23') //-1.23Number(' 1.23 ') //1.23复制代码
parseInt()
函数将给定的字符串解析成为整数,从第一个非空白字符开始转换,失败则返回NaN
parseFloat()
方法将参数中指定的字符串解析成为一个浮点数字并返回(字符串中的第一个小数点有效,第二个小数点无效) parseInt('12.3') //12parseInt('12a') //12parseInt('a12') //NaNparseFloat('12.3a') //12.3parseFloat('12a') //12parseFloat('a12') //NaN复制代码
其他基本类型(number,boolean,null,undefined)转换成string
var a = 1; console.log(typeof a.toString()) //stringvar b = true; console.log(typeof b.toString()) //stringvar c = null; console.log(typeof (c + '')) //stringvar d = undefined; console.log(typeof (d + '')) //string复制代码
其他基本类型(number,string,null,undefined)转换成boolean
var a = 1; console.log(typeof Boolean(a)) //booleanvar b = true; console.log(typeof Boolean(b)) //booleanvar c = null; console.log(typeof Boolean(c )) //booleanvar d = undefined; console.log(typeof Boolean(d )) //boolean复制代码
算数运算符以及算数表达式
例如 : +,-,*,/,%(加,减,乘,除,取余)
运算符 | 说明 | 例子 | 结果 |
---|---|---|---|
+ | 加 | a=1+1 | 2 |
- | 减 | a=3-1 | 2 |
* | 乘 | a=2*3 | 6 |
/ | 除 | a=4/2 | 2 |
% | 取余 | a=1%4 | 1 |
-- | 自减 | a=2a-- | 1 |
++ | 自增 | a=1a++ | 2 |
备注: a++和++a,是由区别的,a++表示先赋值后加1,++a表示先加1在赋值(a--也是一样的)
var a = 2;var b = 2;var c = a++ + 1;var d = ++b + 1;console.log('c=',c) // c=3console.log('d=',d) // d=4复制代码
赋值操作符
运算符 | 说明 | 例子 | 等价 | 结果 |
---|---|---|---|---|
= | 赋值 | a=2 | 2 | |
+= | 加/赋值 | a+=2 | a=a+2 | 4 |
-= | 减/赋值 | a-=2 | a=a-2 | 0 |
*= | 乘/赋值 | a*=2 | a=a*2 | 4 |
/= | 除/赋值 | a/=2 | a=a/2 | 1 |
%= | 加/赋值 | a%=2 | a=a%2 | 0 |
条件运算符
var a = 2;var b = a>1 ? 5 : 10;console.log('b=',b); //b=5复制代码
关系操作符
运算符 | 说明 | 例子 | 结果 |
---|---|---|---|
> | 大于 | 2>1 | true |
< | 小于 | 2<1 | false |
== | 等于 | 2=='2' | true |
=== | 恒等于类型和数值都要比较 | 2==='2' | false |
<= | 小于等于 | 2<=2 | true |
>= | 大于等于 | 2>=3 | false |
布尔操作符
运算符 | 说明 | 例子 | 结果 |
---|---|---|---|
&& | 逻辑与操作符 | 2>1&&2<1 | false |
|| | 逻辑或操作符 | 2<1|| 2>1 | true |
! | 逻辑非 | !false | true |
字符串常用方法
如下:slice、substr、substring、split、indexOf、lastIndexOf、includes、chaAt、replace、concat、toLowerCase、toUpperCase
字符串截取
slice(a,b) 参数a表示截取开始位置,b表示截取结束位置
substr(a,b) 的参数a表示截取开始位置,b表示截取长度(如果省略了该参数,表示到结尾),返回截取后的字符串 sunstring(a,b) 参数较小表示截取开始位置,较大表示截取结束位置 当接收的参数是负数时,slice会将它字符串的长度与对应的负数相加,结果作为参数;substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;substring则干脆将负参数都直接转换为0var str = 'hello world';console.log(str.slice(-3)); //rldconsole.log(str.substring(-3)); //hello worldconsole.log(str.substr(-3)); //rldconsole.log(str.slice(3,-4)); //lo wstrconsole.log(str.substring(3,-4)); //helconsole.log(str.substr(3,-4)); //空复制代码
split是将字符串分割成数组
'hello'.split('') //["h", "e", "l", "l", "o"]复制代码
indexOf:可返回某个指定的字符串值在字符串中首次出现的位置
lastIndexOf:可返回某个指定的字符串值在字符串中最后出现的位置 chaAt: 获取指定位置的字符,没有找到会返回空字符串 includes:返回布尔值,表示是否找到了参数字符串 concat:字符串拼接 replace: 返回替换后的字符串 toLowerCase: 把字符串转换为小写 toUpperCase: 把字符串转换为大写var str = 'hello world';console.log(str.indexOf('l')) //2console.log(str.lastIndexOf('l')) //9console.log(str.chaAt(1))// econsole.log(str.includes('e'))//trueconsole.log(str.concat(123))//hello world123console.log(str.replace('hello','hei'))//hei worldconsole.log(str.toLowerCase())//hello worldconsole.log(str.toUpperCase())//HELLO WORLD复制代码
数组常用方法
数组的值是有序集合,创建数组可以用数组直接量或者是调用构造函数Array(),它是通过方括号'[]'来访问数组中的元素的。数组常用方法:reserve、sort、join、slice、splice、push、pop、unshift、shift、forEach、map、filter、reduce、indexOf、lastIndexOf。 reserve:将数组中的元素倒置
sort:对数组的元素进行排序,并返回数组 join: 将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。var arr = [3,1,5,6];console.log(arr.reverse());//[6,5,1,3]console.log(arr.sort());//[1,3,5,6]console.log(arr.join(''));//'3156'复制代码
slice:返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。且原始数组不会被修改。
splice:方法通过删除现有元素和/或添加新元素来更改一个数组的内容var arr = [1,3,5];var arr1 = arr.slice(0,2);arr.splice(1,1,6);console.log(arr1)//[1,3]console.log(arr)//[1,6,5]复制代码
push:将一个或多个元素添加到数组的末尾,并返回新数组的长度
pop:从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度 shift:从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度 unshift:将一个或多个元素添加到数组的开头,并返回新数组的长度var arr = [1,2,3];arr.push(4);console.log(arr);//[1,2,3,4]arr.pop();console.log(arr)//[1,2,3]arr.shift();console.log(arr);//[2,3]arr.unshift(1);console.log(arr)//[1,2,3]复制代码
indexOf:返回在数组中可以找到一个给定元素的第一个索引(下标),如果不存在,则返回-1
lastIndexOf:返回指定元素(也即有效的JavaScript值或变量)在数组中的最后一个的索引(下标),如果不存在则返回 -1。从数组的后面向前查找var arr = [1,2,3,2,3];console.log(arr.indexOf(2));//1console.log(arr.lastIndexOf(2));//3复制代码
forEach:对数组的每个元素执行一次提供的函数
map:创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。 filter:创建一个新数组, 其包含通过所提供函数实现的测试的所有元素 reduce:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值var arr = [1,2,3];arr.forEach(function(value){console.log(value)});//1 2 3var arr1 = arr.map(function(value){ return value*2});var arr2 = arr.filter(function(value){ return value>2});console.log(arr1);//[2,4,6]console.log(arr2);[3]arr.reduce(function(pre,cur){ return pre+cur}); 复制代码