的很多扩展的特性是的它变得更加的犀利,同时也给予程序员机会创建更漂亮并且更让用户喜欢的网站。
尽管很多的开发人员都乐于颂扬javascript,但是仍旧有人看到它的阴暗面。
使用很多javascript代码的Web页面会加载很慢,过多的使用javascript使得网页丑陋和拖沓。很快如何有效地使用
javascript成为一个非常火热的话题。
今天小编就为Web前端新手准备了这篇JavaScript开发技巧,希望能够对你有所帮助,下面我们一起来看一看吧!
1、尽可能的保持代码简洁
可能大家都听到过了N遍这个代码简洁问题了。作为一个开发人员你可能在你的代码开发过程中使用了很多次,但千万不要在js开发中忘记这点。
§尽量在开发模式中添加注释和空格,这样保持代码的可读性
§在发布到产品环境前请将空格和注释都删除,并且尽量缩写变量和方法名
§使用第三方工具帮助你实现压缩javascript。
2、思考后再修改prototypes
添加新的属性到对象prototype中是导致脚本出错的常见原因。
yourObject.prototype.anotherFunction='Hello'
yourObject.prototype.anotherMethod=function(){...}
在上面代码中,所有的变量都会被影响,因为他们都继承于yourObject。这样的使用会导致意想不到的行为。所以建议在使用完后删除类似的修改。
yourObject.prototype.anotherFunction='Hello'
yourObject.prototype.anotherMethod=function(){}
test.anotherMethod()
deleteyourObject.prototype.anotherFunction='Hello'
deleteyourObject.prototype.anotherMethod=function(){}
3、DebugJavascript代码
即使最好的开发人员都会犯错。为了最大化的减少类似错误,请在你的debugger中运行你的代码,确认你没有遇到任何细微的错误。
4、避免Eval
你的JS在没有eval方法的时候也可以很好的工作。eval允许访问javascript编译器。如果一个字符串作为参数传递到
eval,那么它的结果可以被执行。
这会很大的降低代码的性能。尽量避免在产品环境中使用eval。
5、最小化DOM访问
DOM是最复杂的API,会使得代码执行过程变慢。有时候Web页面可能没有加载或者加载不完整。最好避免DOM。
6、在使用javascript类库之前先学习javascript
互联网充斥着很多的javascript类库,很多程序员都往往使用js类库而不理解负面影响。强烈建议你在使用第三方类库之前学习基本的JS
代码,否则,你就准备着倒霉吧。
7、不要用“SetTimeOut”和“Setinterval”方法来作为“Eval”的备选
setTimeOut("document.getID('value')",3000)
在以上代码中document.getID(‘value’)在setTimeOut方法中被作为字符串来处理。这类似于eval
方法,在每个代码执行中来执行一个字符串,因此会降低性能,因此,建议在这些方法中传递一个方法。
setTimeOut(yourFunction,3000)
8、[]比newArray()更好
一个常犯的错误在于使用当需要数组的时候使用一个对象或者该使用对象的时候使用一个数组。但是使用原则很简单:
“当属性名称是小的连续整数,你应该使用数组。否则,使用一个对象”_DouglasCrockford,JavaScript:Good
Parts的作者.
建议:
vara=['1A','2B']
避免:
vara=newArray()
a[0]="1A"
a[1]="2B"
9、尽量不要多次使用var
在初始每一个变量的时候,程序员都习惯使用var关键字。相反,建议你使用逗号来避免多余的关键字,并且减少代码体积。如下:
varvariableOne='string1',
variableTwo='string2',
variableThree='string3'
10、不要忽略分号“”
这往往是大家花费数个小时进行debug的原因之一。
我很确信你肯定也在其它的文章中阅读过以上相关的内容,但是大家可能往往都忽略了很多基本的规则。你是不是也曾经忽略过分号。是不是也遇到过eval
关键字问题导致性能问题?
以上就是小编今天为大家分享的关于Web前端新手应该知道的JavaScript
开发技巧有哪些?的文章,希望本篇文章能够对刚刚接触Web前端行业的新手们有所帮助。想要了解更多Web前端知识记得关注北大青鸟Web前端培训官网!
*声明:内容与图片均来源于网络(部分内容有修改),版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。
Object.keys()Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的object上面可直接枚举的属性。这些属性的顺序与手动遍历该对象属性时的一致。
例如:
let obj = {
name: 'haha',
age: 20,
showName: function () {}
}
Object.keys(obj) //['name','age','showName']
处理数组时,返回数组各元素的索引值:
let arr = ['a', 'b', 'c']
Object.keys(arr)// ['0', '1', '2']
let brr = [1, 3, 4]
Object.keys(brr)// ['0', '1', '2']
可自动排序:
let arr = { 100: 'a', 2: 'b', 7: 'c' }
console.log(Object.keys(arr))// console: ['2', '7', '100']
组合用法:
let obj = {
name: 'haha',
age: 20,
}
Object.keys(obj).map((val, index)=>{
obj[val] // 可以针对obj的不同属性做不同处理
})
Object.values()
Object.values()方法返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。
例如:
let obj = {
name: 'haha',
age: 20,
showName: function () {}
}
Object.values(obj) //['haha','20', f]
let brr = [1, 3, 4]
Object.values(brr)// [1, 3, 4]
排序:
let an_obj = { 100: 'a', 2: 'b', 7: 'c' }
console.log(Object.values(an_obj))// ['b', 'c', 'a']
字符串:
console.log(Object.values('haha'))// ['h', 'a', 'h', 'a']
Object.entries()
Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。
const obj = { foo: 'bar', baz: 42 }
console.log(Object.entries(obj))// [ ['foo', 'bar'], ['baz', 42] ]
const anObj = { 100: 'a', 2: 'b', 7: 'c' }
console.log(Object.entries(anObj))// [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]
非对象会被强制转为对象:
console.log(Object.entries('foo'))// [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]
更优雅的遍历对象键值:
const obj = { a: 5, b: 7, c: 9 }
for (const [key, value] of Object.entries(obj)) {
console.log(`${key} ${value}`)// "a 5", "b 7", "c 9"
}
// 或者
Object.entries(obj).forEach(([key, value]) =>{
console.log(`${key} ${value}`)// "a 5", "b 7", "c 9"
})
Object.fromEntries()
Object.fromEntries() 把键值对列表转换为一个对象。改方法为ES10方法, Chrome不支持
const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]
const obj = Object.fromEntries(arr)
console.log(obj)// { 0: "a", 1: "b", 2: "c" }
js判断添加多个标签js怎么样获取多个标签内容-百度经验1、创建一个test.html文件。
2、在文件内,使用ul、li标签创建一个测试的列表,同时创建一个button按钮,用于触发执行js函数。
3、在js标签内,
百度经验2020-01-12
其他人还搜了
js标签中点击事件失效
js 判断回车键
js判断是否是chrome
js判断数组中是否包含某一项
js添加标签绑定多个事件
js判断对象是否为空
js if判断多个条件_JS条件判断小技巧(一)weixin_39540271的博客-CSDN博客
文章标签:js if判断多个条件 js map用法 js table多层嵌套 js 数组追加 js三元表达式 经常code review,我发现JS newbie很容易写出一堆冗长的代码。今天就列几个比较常见的“解决之道”,看看...
CSDN技术社区2020-12-03
js 动态添加标签绑定多个事件-鸡蛋是方的-博客园
1:此方法为以aa开头的input标签绑定了事件;2:此方法:绑定多个事件,多个事件用空格分开,例子绑定了点击和输入时事件;3:如果调用第三方插件方法...
博客园2020-04-09
请问怎么用js判断循环里面li标签?百度知道
回答:2
代码: menu{width:100%text-align:center} menu li{display:inline-blockbackground:#cccpadding:15px 20px} current{color:#f3c} a href="#">menu</a></li>menu1 menu2 menu3 var lilenght=$(".menu li").length获取li个数 console.log(lilenght) if...
百度知道2020-11-20
js多重判断多个条件的方法-web教程网
我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越来越臃肿,...
web教程网
js 怎么获取a标签被点击的链接,有多个a标签-ZOL问答
5条回答:【推荐答案】添加onclick事件,获取href属性就知道具体的url地址了!DOCTYPEhtmlhtmlbodyscriptfunctionaclick(self){alert(self.href)}/scriptahref=ddd
中关村在线
JS添加标签-程序员大本营
我开始使用的是appendChild函数,结果发现appendChild只能添加指定标签,像我这样需要加一大堆标签和标签属性操作起来就略显麻烦。于是我转而使用append函数,最开始我是这样写的:结果效果如下...
www.pianshen.com
如何使用js添加html标签_Keeling1720的博客-CSDN博客_js 插入html
1.使用 getElementById 获取想要写的标签的父标签对象(body除外,当然body也可以获取,当时没必要,因为他可以通过document.body直接调用)
2.使用 createElement 创建标签对象
CSDN技术社区
js怎么把几个li标签按顺序添加进一个div中?Charles_Tian的博客-CSDN博客
1.js怎么把几个li标签按顺序添加进一个div中?这种问题一般出现在前端请求数据之后,后端以数组的形式返回给前端,然后前端对这些数组进行处理。(1)首先是对后端返回的数据进行拆分,分别得到...
CSDN技术社区2017-12-10
js判断html是否存在指定标签,JavaScript检测字符串中是否 含有html标签实现方法_monte3card的博客-CSDN博客
JavaScript检测字符串中是否 含有html标签实现方法发布时间:2017-11-07 14:11来源:互联网当前栏目:web技术类这篇文章主要介绍了JavaScript检测字符串中是否含有html标签实现方法,本文直接给...
CSDN技术社区2021-06-16
相关搜索
js判断
js添加标签
js判断循环中的li标签
js判断数组
js判断字符串长度
js判断滚动条
js判断大小写
js 判断下拉框
js判断复选框是否选中
js添加html