JS基础 操作符 字符串、数组常用方法汇总

510 阅读6分钟

操作符

其他基本类型转换成Number

  1. 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
  1. 字符串转换成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() 函数将给定的字符串解析成为整数,从第一个非空白字符开始转换,失败则返回NaN
parseFloat() 方法将参数中指定的字符串解析成为一个浮点数字并返回(字符串中的第一个小数点有效,第二个小数点无效)

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});