码迷,mamicode.com
首页 > 编程语言 > 详细

javascript-js中技巧集合

时间:2016-03-27 18:01:18      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

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中技巧集合

标签:

原文地址:http://www.cnblogs.com/weloveshare/p/f2c6a0e60d1001e8ca05bbc573a46134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
分享档案
周排行
mamicode.com排行更多图片
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!