javascript-js中技巧集合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript-js中技巧集合相关的知识,希望对你有一定的参考价值。
1、对于string,number等基础类型,==和===是有区别的Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript-js中技巧集合相关的知识,希望对你有一定的参考价值。
1、对于string,number等基础类型,==和===是有区别的Global对象
属性: Infinity / NaN / undefined / null
方法: eval() / isFinite() / isNaN() / parseFloat() / parseInt() / decodeURI() / decodeURIComponent()
encodeURI() / encodeURIComponent()
单体内置对象eval和math
eval() 解析字符串为js脚本并执行
1 | string str = ‘console.log("this is eval")‘ ; |
严格作用域下,eval()里面是一个域,不影响外面的值
并不推荐用eval,效率低,容易被跨域攻击,能不用eval就尽量不用
严格作用域的用法
1 2 3 4 5 6 | ‘use strict‘ var numtemp = 1 ; console.log( "numtemp:" ,numtemp); eval( ‘var numtemp = 2;console.log("numtemp:",numtemp)‘ ); console.log( "numtemp:" ,numtemp); //eval里面的内容不会影响外面的变量 |
Math对象的属性
Math.PI
Math.E
Math.SQRT2
Math.max()
Math.min()
Math.round() 四舍五入
Math.ceil() 有小数就近一位
Math.floor() 舍去小数位
Math.random() 生成0-1内的随机数
生成范围内的随机数
1 2 3 | function randBetween(min,max){ return min + Math.random*(max-min); } |
对象成员的两种访问方法
点表示法
中括号表示法
Object.keys(obj) 取键值函数的用法
1 2 3 | var obj = {a: 1 ,b: 2 ,c: 3 }; Object.keys(obj); // => [‘a‘,‘b‘,‘c‘] Object.keys(obj).length // => 3 |
toString函数
1 2 | var arr = Object .keys(obj); arr.toString(); // => ‘a,b,c‘ |
join函数
1 2 | var arr = Object .keys(obj); arr.join( "ss" ); // => ‘assbssc‘ |
数组
初始化、检查
1.数组里面什么都可以放,js的7中对象都可以放
2.数组是从0开始索引的
初始化方法
1.构造函数方法
1 2 3 | var arr = new Array (); //空的数组 var arr = new Array ( 3 ); //声明长度为3的数组 var arr = new Array ( ‘jing‘ , ‘ya‘ ); //声明长度为2的数组 |
2.字面量方法(没法直接指定成员的个数)
1 2 3 4 | var arr = []; var arr = [ ‘jingya‘ , ‘ya‘ ]; arr[ 3 ] = ‘xiaolizi‘ ; // 自动创建这个成员 arr[ 6 ] = ‘new‘ ; // 自动创建4,5成员为undefined |
数组的检查(数组不属于基本数据类型,object也是,所以不能使用typeof)
不能使用typeof
instanceof 关键字
1 | arr instanceof Array // 返回true |
Array.isArray()
1 | Array .isArray(arr); // 返回的还是true |
转换和排序
按照字符串的顺序排序,都会修改数组本身的
sort() ,这个sort里面还可以放函数
1 2 3 4 5 6 | var arr = [ 11 , 2 , 3 , 23 , 55 ]; function compareAB(a,b){ return a>b; } arr.sort(compareAB); console.log( ‘after sort ‘ ,arr); |
reverse()
栈和队列操作
栈操作,后进先出
push() 后进 ,返回一个新数组的长度 有参数
pop() 后出 ,返回弹出的那个数字 没有参数
队列操作,先进后出
push() 从后压入数据
shift() 从前弹出数据
unshift() 从前压入数据
其他操作
arr.concat(arr1) 两个数组之间的连接
arr.slice(2,5) // 只取 2,3,4,不取5,不影响原数组本身
arr.splice(1,1) // 从索引1开始截取一个返回数组,原来的数组就变了
arr.splice(1,0,false,‘str‘) // 从第1位开始删除0个,插入false和str两个字符
indexOf() / lastIndexOf() //
indexOf(5) // 查到的话返回索引位置,查不到的话返回-1
every() / some() / forEach() / filter() / map()
都是传入一个函数做为参数,对传入的每个参数依次执行这个函数
every()如果每个函数的执行结果都是返回true,那么every的执行结果就会返回true
some()只要有一个函数执行返回true,那么some就会返回true
filter()将所有执行返回true的成员组成一个新的数组返回
map()用函数处理每个成员,并将结果组成一个新的数组来返回
forEach()没有返回值,单纯的执行函数
reduce()
reduceRight()
以上是关于javascript-js中技巧集合的主要内容,如果未能解决你的问题,请参考以下文章