操作符
其他基本类型转换成Number
- null、undefined、Boolean转化为number,可通过typeof检测数据类型
Number(null); //0
typeof Number(null); //number
Number(undefined); //0
typeof Number(null); //number
Number(true); //1
Number(true); //0
typeof 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.23
Number('+1.23') //1.23
Number('0xf') //15
Number() //0
Number('-1.23') //-1.23
Number(' 1.23 ') //1.23
复制代码
parseInt()
函数将给定的字符串解析成为整数,从第一个非空白字符开始转换,失败则返回NaNparseFloat()
方法将参数中指定的字符串解析成为一个浮点数字并返回(字符串中的第一个小数点有效,第二个小数点无效)
parseInt('12.3') //12
parseInt('12a') //12
parseInt('a12') //NaN
parseFloat('12.3a') //12.3
parseFloat('12a') //12
parseFloat('a12') //NaN
复制代码
其他基本类型(number,boolean,null,undefined)转换成string
var a = 1; console.log(typeof a.toString()) //string
var b = true; console.log(typeof b.toString()) //string
var c = null; console.log(typeof (c + '')) //string
var d = undefined; console.log(typeof (d + '')) //string
复制代码
其他基本类型(number,string,null,undefined)转换成boolean
var a = 1; console.log(typeof Boolean(a)) //boolean
var b = true; console.log(typeof Boolean(b)) //boolean
var c = null; console.log(typeof Boolean(c )) //boolean
var 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=2 a-- | 1 |
++ | 自增 | a=1 a++ | 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=3
console.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则干脆将负参数都直接转换为0
var str = 'hello world';
console.log(str.slice(-3)); //rld
console.log(str.substring(-3)); //hello world
console.log(str.substr(-3)); //rld
console.log(str.slice(3,-4)); //lo wstr
console.log(str.substring(3,-4)); //hel
console.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')) //2
console.log(str.lastIndexOf('l')) //9
console.log(str.chaAt(1))// e
console.log(str.includes('e'))//true
console.log(str.concat(123))//hello world123
console.log(str.replace('hello','hei'))//hei world
console.log(str.toLowerCase())//hello world
console.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));//1
console.log(arr.lastIndexOf(2));//3
复制代码
forEach:对数组的每个元素执行一次提供的函数
map:创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
filter:创建一个新数组, 其包含通过所提供函数实现的测试的所有元素
reduce:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
var arr = [1,2,3];
arr.forEach(function(value){console.log(value)});//1 2 3
var 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});
复制代码