javascript-js中技巧集合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript-js中技巧集合相关的知识,希望对你有一定的参考价值。

1、对于string,number等基础类型,==和===是有区别的
1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等
2)同类型比较,直接进行“值”比较,两者结果一样
2、对于Array,Object等高级类型,==和===是没有区别的
进行“指针地址”比较
3、基础类型与高级类型,==和===是有区别的
1)对于==,将高级转化为基础类型,进行“值”比较
2)因为类型不同,===结果为false


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()







来自为知笔记(Wiz)


以上是关于javascript-js中技巧集合的主要内容,如果未能解决你的问题,请参考以下文章

VS中添加自定义代码片段——偷懒小技巧

Android课程---Android Studio使用小技巧:提取方法代码片段

JavaScript-js高程 思维导图

你可能不知道的JavaScript代码片段和技巧(下)

你可能不知道的JavaScript代码片段和技巧(上)

VS2015使用技巧 打开代码片段C#部分