js学习阶段总结
typeof操作符:返回字符串,可能是“undefined”,“boolean”,“ string”,“number”,“object”,“function”中的一种,所以不能判断数组。
NaN(Not a Number):用法NaN(val)如果val能被转化成一个数就返回false,否则返回true。
parseInt(val,way)其中way可以是2,4...就是要按照这个进制来转化,返回number类型,num.toString(way)同理,只不过返回string类型。
object类型有一个hasOwnProperty(name)来判断当前对象是在实例中还是原型中。
每个函数都有个arguments属性对象来记录它的参数,相当于一个参数的数组,用argumentscallee可以递归。
unshift方法可以从前端向数组推入两个元素并返回长度,用unshift和pop可以反向模拟队列。
sort(compare),其中compare(val1,val2)方法当val1在val2前面返回-1,后面返回,0好像是不变。
对数组操作用splice函数,splice(a1,a2,a3......)a1,a2必填a1表示起始位置,a2表示要删除的项数,后面的参数表示从该位置要插入的新值。
indexOf返回一个val在数组中的位置,lastindexOf()从后面开始数。
数组的迭代方法:every()每个值都返回true才返回true,filter()返回所有返回true元素的数组,forEach()只是运行函数,没有返回,map()返回函数调用结果组成的数组,some()与every相对,若有一个返回ture则返回true。
举例:var everyRes = number.every(function(item,index,array){return item>2 ;}) ;//item,index,array三个参数是必填的。
数组的归并:reduce和reduceRight(),举例:var sum = values.reduce(function(prev,cur,index,array){return prev+cur;}) ;prev代表前一个,cur代表后一个。
Date类型:var date = new Date(Date.parse("May 25,2004")); var date = new Date(Date.UTC(2015,4,5,17,55,50));
call和apply区别第一个是this(上下文对象)。
var obj =eval("("+data+")")来转化json,JSON.parse(data)也可以,两者的区别是eval相当于是把内容当做js来解析,而parse是只转化成obj对象。
与JSON.parse对应的是JSON.stringify方法,来把obj变成json
判读一个对象是不是数组:Object.prototype.toString.call(o) == '[object Array]' ;
如何用用continue跳出两层循环(对break也适用):
var num = 0 ;
outer:
for(var i=0;i<10;i++)
for(var j=0;j<10;j++)
{
if(i==5&&j==5)
{
continue outermost ;
}
num++ ;
}
alert(num);//
with语句:
var obj = {
search : "st" ,
name : "lala",
url : "www.123.com"
} ;
with(pbj){
var a = search ;
var b = name ;
var c = url ;
}
用Object.defineProperty(obj,"key",{
configurable:true,
value:"value"
});这样可以让对象的属性只读。
用Object.defineProperties可以一次添加多个属性
Object.defineProperties(book,{
_year:{
value:2004
}, edition:{
value:1
}, year:{
get:function(){
return this._year ;
}
set:function(newValue){
if(newValue>2004)
{
this._year = newValue ;
edition++ ;
}
}
}
}
}) ;
最新文章
- gogo
- jqery validate、validate自定义验证方法 + jaery form Demo
- LightOj 1096 - nth Term (矩阵快速幂,简单)
- hello world of hibernate Annotation
- DWR应用—快速入门篇
- Android批量插入数据到SQLite数据库
- Citrix 服务器虚拟化之十一 Xenserver管理vApps
- C++ 檔案、資料夾、路徑處理函式庫:boost::filesystem
- Redis数据迁移方案
- Struts2从头到脚--学习笔记(自认为比较重要的)
- Python系列之正则表达式详解
- ASP.NET Core 中断请求了解一下(翻译)
- 【重新发布,代码开源】FPGA设计千兆以太网MAC(1)——通过MDIO接口配置与检测PHY芯片
- 《linux就该这么学》第十三节课:第11章和第12章,vsftpd服务与samba和nfs服务
- FPGA例化ROM存储表格
- jQuery使用CDN加速
- js 捕捉滚动条事件
- BSOJ 4591 -- 【JLOI2015】城池攻占
- eclipse自动添加注释
- Java项目收藏
热门文章
- 使用Log4在测试过程中打印执行日志 及配置log4j.properties!
- java 基础 --File
- 【经典数据结构】Trie
- 【转】史上最浅显易懂的Git教程!
- bzoj5039:[Jsoi2014]序列维护
- Android 分Dex (MultiDex)
- 抽屉点赞及jQuery CSS操作
- Mybatis笔记五:Mybatis的全局配置文件Configuration.xml讲解
- Zabbix概术及基础介绍(一)
- The 14th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - F 贪心+二分