jquery对json 键值对或数组的增加、删除、遍历 *** 作的代码如下:
var jsonStr={}
//增加jsonStr["name1"]="yu"jsonStr["name2"]="jin"jsonStr["name3"]="sheng"
$.each(jsonStr,function(_key)
{ console.log("Push结果:"+_key+"=="+jsonStr[_key]+"\r\n")})
//遍历$.each(jsonStr,function(_key)
{ var key = _key
var value = jsonStr[_key]
if(_key=="name1")
{ //删除 delete jsonStr[_key]
}
})
$.each(jsonStr,function(_key){ console.log("删除后的结果:"+_key+"=="+jsonStr[_key]+"\r\n")
})
输出结果为:
扩展资料:
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。
jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档 *** 作、事件处理、动画设计和Ajax交互。
jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。
jQuery的模块可以分为3部分:入口模块、底层支持模块和功能模块。
在构造jQuery对象模块中,如果在调用构造函数jQuery()创建jQuery对象时传入了选择器表达式,则会调用选择器Sizzle(一款纯JavaScript实现的CSS选择器引擎,用于查找与选择器表达式匹配的元素集合)遍历文档,查找与之匹配的DOM元素,并创建一个包含了这些DOM元素引用的jQuery对象。
浏览器功能测试模块提供了针对不同浏览器功能和bug的测试结果,其他模块则基于这些测试结果来解决浏览器之间的兼容性问题。
在底层支持模块中,回调函数列表模块用于增强对回调函数的管理,支持添加、移除、触发、锁定、禁用回调函数等功能。
异步队列模块用于解耦异步任务和回调函数,它在回调函数列表的基础上为回调函数增加了状态,并提供了多个回调函数列表,支持传播任意同步或异步回调函数的成功或失败状态。
数据缓存模块用于为DOM元素和Javascript对象附加任意类型的数据;队列模块用于管理一组函数,支持函数的入队和出队 *** 作,并确保函数按顺序执行,它基于数据缓存模块实现。
参考资料:
百度百科--jQuery
不是有个构造函数extend么,可以自行添加方法。如://给对象添加新的方法。
function extend(object, data){
for(var key in data){
object[key] = data[key]
}
return object
}再或者用原生JS给web元素绑定事件
//绑定事件
function addEvent(el,evname,func){
if(el.attachEvent){
el.attachEvent("on"+evname,func)
}else if(el.addEventListener){
el.addEventListener(evname,func,true)
}else{
el["on"+evname]=func
}
}//解除绑定
function delEvent(el,evname,func){
if(el.removeEventListener){
el.removeEventListener(evname,func,false)
}else if(el.detachEvent){
el.detachEvent("on"+evname,func)
}else{
el["on"+evname]=null
}
}
注意:在javascript语言中,key的值只能是字符串,不能是其它的。
在javascript中,对象本身就是一种Map结构。
var map = {}
map['key1'] = 1
map['key2@'] = 2
console.log(map['key1'])//结果是1.
console.log(map['key2@'])//结果是2.
//如果遍历map
for(var prop in map){
if(map.hasOwnProperty(prop){
console.log('key is ' + prop +' and value is' + map[prop])
}
}
动态的赋值key:
var key1 = '动态key1'
var key2 = '动态key2'
var map = {}
map[key1] = 1
map[key2] = 2
console.log(map[key1])//结果是1.
console.log(map[key2])//结果是2.
//如果遍历map
for(var prop in map){
if(map.hasOwnProperty(prop){
console.log('key is ' + prop +' and value is' + map[prop])
}
}
扩展资料
JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。
直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}︰
console.log("a")//这是正确的
console.log("b")//这是正确的
console.logg("c")//这是错误的,并且到这里会停下来
console.log("d")//这是正确的
console.log("e")//这是正确的
/*解决办法*/
try{console.log("a")}catch(e){}//这是正确的
try{console.log("b")}catch(e){}//这是正确的
try{console.logg("c")}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过
try{console.log("d")}catch(e){}//这是正确的
try{console.log("e")}catch(e){}//这是正确的
Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。
V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译)。
但由于V8的核心部份多数用Javascript撰写(而SpiderMonkey是C++)。因此在不同的测试上,两者性能互有优劣。
与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。
参考资料来源:百度百科:javascript
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)