javascript-js中技巧集合
1.值的转换
http://www.cnblogs.com/ziyunfei/archive/2012/09/15/2685885.html
变量var定义提前
不再严格模式下,不使用var关键字就可以声明一个全局变量(不推荐使用这种方式)
这种声明在严格模式下是不行的
建议使用window.name = "xxxxx";这种命名方式来
一般在底部声明变量
常量const关键字
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()
javascript-js中技巧集合的更多相关文章
- [JavaScript] JS中对Base64的解析
JS中对Base64的解析 <script type="text/javascript"> /** * UTF16和UTF8转换对照表 * U+00000000 – U ...
- javascript (js)中的基本概念
1. 基本数据类型 1.1 number (数字)在js中没有整形和浮点型的区分,所有的数字都是浮点型标识, 采用64位的浮点格式来表示数字.如果数字类型用在字符串连接表达式中,则会自动转换成字符串, ...
- [JavaScript]JS中的变量声明与有效域
1.变量声明 var a = 1; //使用var声明变量 b = 1; //不使用var 第一种情况,在当前域中声明一个名为a的变量,如果实在方法内则为局部变量,若在最外层声明则a为全局变量. 第二 ...
- js中DOM集合的动态特性
先引出一个问题:通过调用getElements*()这样的方法返回来类(伪)数组,能对其本身的元素进行排序吗? 答案是不能,因为这些对象的都是NodeList . NamedNodeMap 或 HTM ...
- javascript js中的typeof使用
typeof运算符介 绍:typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型.它返回值是一个字符串,该字符串说明运算数的类型. 你 知道下面typeof运算的结果吗? typeof ...
- [JavaScript] js中全局标识正则表达式的lastIndex属性
在JavaScript中使用正则表达式时,遇到一个坑:第一次匹配是true,第二次匹配是false. 因为在带全局标识"g"的正则表达式对象中,才有“lastIndex” 属性,该 ...
- javascript(js)中的substring和substr方法
1. substring 方法 定义和用法: substring 方法用于提取字符串中介于两个指定下标之间的字符. 语法: stringObject.substring(start,end) 参数 ...
- Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)
一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...
- javaScript系列:js中获取时间new Date()详细介绍
var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1970-????)m ...
随机推荐
- valueof这个万能方法,将string转换为int或者int转换为string都可以
private static String testString = "111"; int stringInt = Integer.valueOf(testString); Str ...
- [ASP.NET]EF跨项目调用问题
在一个项目中调用另一个项目中的模型,在该项目中添加一个模型,解决自动提示问题using问题
- lpa标签传播算法解说及代码实现
package lpa; import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class L ...
- leetcode_Isomorphic Strings _easy
Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the chara ...
- Qunie——自我生成程序
Qunie是一段没有输入.但输出和它本身源代码同样的程序.本文无不论什么高深技术,纯属娱乐! 近期看到wikipedia的一个词条--Quine,简单介绍部分摘录于此,并简要翻译: A quine i ...
- EntboostChat 0.9(越狱版)公布,iOS免费企业IM
恩布互联公布IOS免费企业IM 0.9越狱预览版本号,支持全部iPhone4/5手机(6未上真机測试),iPad平板,主要功能包含单聊.群聊,企业组织结构,文本.表情.图片.文件.截图.离线消息等: ...
- Introduction to CMMI培训总结
6月3日到5日,用了3天时间,參加了cmmi-dev的简单介绍课程培训,參加培训真的比上班都要累非常多啊!每天早上9点到下午6点.中午吃饭加歇息总共1小时.晚上还有作业要做,每天睡觉都要到11点 ...
- 自己定义控件三部曲之动画篇(十三)——实现ListView Item进入动画
前言:宝剑锋从磨砺出,梅花香自苦寒来 相关文章: <Android自己定义控件三部曲文章索引>: http://blog.csdn.net/harvic880925/article/det ...
- Chisel Tutorial(一)——Chisel介绍
Chisel是由伯克利大学公布的一种开源硬件构建语言,建立在Scala语言之上,是Scala特定领域语言的一个应用,具有高度參数化的生成器(highly parameterized generator ...
- audio_coding模块分析和audio_conference_mixer模块分析
audio_coding 1. 主要接口 AudioCodingModuleImpl::RegisterReceiveCodec 初始化Codec AudioCodingModul ...