JavaScript 초보자를 위한 24가지 실용적인 팁 [TUTS]_javascript 기술
注:本文多次用到Firebug的console对象,请参考Firebug Console API 。关于firebug的更详细介绍,请猛击这里。
1. 用 === 代替 ==
JavaScript里有两种不同的相等运算符:===|!== 和==|!=。相比之下,前者更值得推荐。请尽量使用前者。
引用:
“如果两个比较对象有着同样的类型和值,===返回true,!==返回false。”
– JavaScript: The Good Parts
2. 避免使用Eval函数
Eval函数把一个字串作为参数,并把字串作为JavaScript语句执行,返回结果(参考)。
此函数不仅会降低你脚本的执行效率,而且还大大增加了安全风险,因为它赋予了作为文本的参数太大的权利。千万别用!
3. 不要使用快速写法
技术上说,你可以省略掉大部分花括弧和句尾分号,绝大多数浏览器都能正确执行以下语句:
代码:
<font face="新宋体">if(someVariableExists)<br> x = false</font>
代码:
<font face="新宋体">if(someVariableExists)<br> x = false<br> anotherFunctionCall();</font>
代码:
<font face="新宋体">if(someVariableExists) {<br> x = false;<br> anotherFunctionCall();<br>}</font>
代码:
<font face="新宋体">if(someVariableExists) {<br> x = false;<br>}<br>anotherFunctionCall();</font>
代码:
<font face="新宋体">if(2 + 2 === 4) return 'nicely done';</font>
假设,在将来的开发过程中,你需要为这个 if 语句添加更多的命令呢?到时候你还不是得把括号给加上?
4. 好好利用JS Lint
JSLint 是由 Douglas Crockford 编写的一个调试器。你只需要贴上你的代码,它就能快速为您扫描出任何明显的错误和问题。
引用:
“JSLint扫描接收的代码。发现问题,描述问题,并给出其在源码中的大概位置。可发现的问题包括但不限于语法错误,虽然语法错误确实是最常见的。JSLint也会用
约定俗成的习惯检查代码的格式化风格,以及结构错误。通过JSLint的扫描并不能保证你的程序就完全正确。它只是为您提供了额外一双发现错误的眼睛。”
– JSLint 文档
5. 在页面底部加载脚本
正如下图所示:

请记住—— 我们要千方百计保证客户端的页面载入速度尽可能的快。而脚本没载入完成,浏览器就没法加载页面的剩余部分。
如果你的JS文件只是添加一些额外功能——例如,为点击某链接绑定事件——那大可以等页面加载基本完成后再做。把JS文件放到页面最后,body的结束标签之前,这样做最好了。
更好的写法是
代码:
<font face="新宋体"><p>超哥是世界上最帅的人。benhuoer.com是世界上最好看的博客。</p><br><script type="text/javascript" src="path/to/file.js"></script><br><script type="text/javascript" src="path/to/anotherFile.js"></script><br></body><br></html> <!--0--><!--1--></font>
当需要执行冗长的for语句时,不要让JavaScript引擎每次都重复那些没有必要的操作。例如:
这样不好
代码:
<font face="新宋体">for(var i = 0; i < someArray.length; i++) {<BR> var container = document.getElementById('container');<BR> container.innerHtml += 'my number: ' + i;<BR> console.log(i);<BR>}</FONT>
这样好多了
代码:
<FONT face=新宋体>var container = document.getElementById('container');<BR>for(var i = 0, len = someArray.length; i < len; i++) {<BR> container.innerHtml += 'my number: ' + i;<BR> console.log(i);<BR>}</FONT>
7. 快速构建字串
要对一个数组或对象做循环操作时,不要老惦记着一表人才的for语句,拿点创意出来嘛!明明就还有很多更快的办法:
代码:
<FONT face=新宋体>var arr = ['item 1', 'item 2', 'item 3', ...];<BR>var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';</font>
引用:
“没那么多繁文缛节来烦你;你就信我一次好了(或者你也可以自己试一试)—— 这真的是迄今能找到的最快办法了!
用点土办法,也别管它背后究竟发生了什么抽象的东西,通常土办法都比那些优雅的办法要快捷得多!”
– James Padolsey, james.padolsey.com
引用:
“把你踩在全局的那些乱七八糟的脚印都归于一人名下,能显著降低与其他应用、小工具或JS库冲突的可能性。”
– Douglas Crockford
代码:
<font face="新宋体">var name = 'Jeffrey';<br>var lastName = 'Way';<br>function doSomething() {...}<br>console.log(name); // Jeffrey -- or window.name</font>
代码:
<font face="新宋体">var DudeNameSpace = {<br> name : 'Jeffrey',<br> lastName : 'Way',<br> doSomething : function() {...}<br>}<br>console.log(DudeNameSpace.name); // Jeffrey</font>
9. 写好注释
可能一开始你会觉得并无必要,但相信我,你将来会主动想要尽可能写好代码的注释的。当你几个月后再回看某项目时,结果却发现很难想起当时写某句东西时脑子在想的什么了,是不是很让人沮丧呢?或者,如果有同事要修订你的代码呢?一定,一定要为你代码里的重要部分加上注释。
代码:
<font face="新宋体">// 遍历数组,输出各自名称<br>for(var i = 0, len = array.length; i < len; i++) {<BR> console.log(array);<BR>}</FONT>
一定要记得为未启用JavaScript的情况提供替代方案。大家可能会认为,“大部分我的访客都启用了JavaScript的,我才不用担心”。这样的话,你可就大错特错了!
你有没有试过看看禁用JavaScript后你那漂亮的滑动器都成啥样了?(你可以下载 Web Developer ToolBar 轻松完成这项任务。)禁用之后你的网站可能就彻底失去了可用性!经验之谈:开发初期总是按照没有JavaScript来设计你的网站,之后再进行渐进地功能增强,小心翼翼地改变你地布局。
11. 不要传递字串给 “setInterval” 或 “setTimeout”
看看下面的代码:
代码:
<FONT face=新宋体>setInterval(<BR>"document.getElementById('container').innerHTML += 'My new number: ' + i", 3000<BR>);</FONT>
代码:
<FONT face=新宋体>setInterval(someFunction, 3000);</FONT>
初识之下,“with”语句似乎还挺好用的。它用于设置代码在特定对象中的作用域。其基本用法是提供深入到对象中处理元素的快速写法。例如:
代码:
<FONT face=新宋体>with (being.person.man.bodyparts) {<BR> arms = true;<BR> legs = true;<BR>}</FONT>
代码:
<FONT face=新宋体>being.person.man.bodyparts.arms = true;<BR>being.person.man.bodyparts.legs= true;</FONT>
代码:
<FONT face=新宋体>var o = being.person.man.bodyparts;<BR>o.arms = true;<BR>o.legs = true;</FONT>
在JavaScript有多种方式能新建对象。最传统的方法是 new 语句,如下:
代码:
<FONT face=新宋体>var o = new Object();<BR>o.name = 'Benhuoer';<BR>o.lastName = 'Yang';<BR>o.someFunction = function() {<BR> console.log(this.name);<BR>}</FONT>
更好的写法
代码:
<FONT face=新宋体>var o = {<BR> name: 'Jeffrey',<BR> lastName = 'Way',<BR> someFunction : function() {<BR> console.log(this.name);<BR> }<BR>};</FONT>
代码:
<FONT face=新宋体>var o = {};</FONT>
引用:
“对象字面符(Objects literals)帮助我们写出支持很多特性,同时又关联性强、简明直接的代码。没必要直接调用新建语句,然后再费心维护声明变量和传递变量的语句之间的正确顺序,等等。” – dyn-web.com
新建数组时的同类型运用。
行得通的写法
代码:
<FONT face=新宋体>var a = new Array();<BR>a[0] = "Joe";<BR>a[1] = 'Plumber';</FONT>
代码:
<FONT face=新宋体>var a = ['Joe','Plumber'];</FONT>
引用:
“在JavaScript编程中经常遇到的一个错误是,该用数组时却用了对象,该用对象时却用了数组。规则其实很简单:当属性名是小的连续整数时,你应该使用数组。其他情况,使用对象。” – Douglas Crockford
代码:
<FONT face=新宋体>var someItem = 'some string';<BR>var anotherItem = 'another string';<BR>var oneMoreItem = 'one more string';</FONT>
代码:
<FONT face=新宋体>var someItem = 'some string',<BR> anotherItem = 'another string',<BR> oneMoreItem = 'one more string';</FONT>
17. 千万千万记得写分号
大部分浏览器都允许你不写句尾分号:
代码:
<FONT face=新宋体>var someItem = 'some string'<BR>function doSomething() {<BR> return 'something'<BR>}</FONT>
更好的写法
代码:
<FONT face=新宋体>var someItem = 'some string';<BR>function doSomething() {<BR> return 'something';<BR>}</FONT>
遍历对象时,你可能会发现你还需要获取方法函数。所以遇到这种情况时,请一定记得给你的代码包一层 if 语句,用以过滤信息。
代码:
<FONT face=新宋体>for(key in object) {<BR> if(object.hasOwnProperty(key) {<BR> ...then do something...<BR> }<BR>}</FONT>
19. 使用Firebug的“Timer”功能优化你的代码
想要轻松地快速了解某项操作的用时吗?使用Firebug的timer功能来记录结果好了。
代码:
<FONT face=新宋体>function TimeTracker(){<BR>console.time("MyTimer");<BR>for(x=5000; x > 0; x--){}<br>console.timeEnd("MyTimer");<br>}</font>
저는 웹 개발 블로그의 열렬한 팬입니다. 밥먹고 자기전에 책을 읽는 수밖에 없는 것 같아요~ 침대 옆 탁자 위에 웹 개발에 관한 좋은 책을 올려두세요! 다음 도서 목록은 제가 가장 좋아하는 도서 목록입니다.
-
객체 지향 JavaScript(아직 중국어 버전 없음)
-
JavaScript: 좋은 부분(중국어 버전)
-
jQuery 1.3 배우기(아직 중국어 버전은 없지만 구버전 중국어 버전을 확인하실 수 있습니다 )
-
자바스크립트 배우기(중국어 버전)
읽기 …여러 번 읽어보세요! 지금도 계속 읽고 있어요.
21. 자체 결정 기능
함수 호출에 비해 페이지 로드 시 자동으로 함수가 로드되거나 상위 함수가 호출되도록 함 호출되는 매우 간단하고 편리한 실행 방법입니다. 함수를 상위 항목으로 묶고 추가 괄호를 추가하면 기본적으로 정의한 함수가 실행됩니다(자세히 알아보기).
코드:
<font>(function doSomething() {<code id="code28"><font face="新宋体">(function doSomething() {<br> return {<br> name: 'jeff',<br> lastName: 'way'<br> };<br>})();</font>
return {
22. 기본 JavaScript는 코드 라이브러리를 사용하는 것보다 항상 빠릅니다
jQuery 및 Mootools와 같은 JavaScript 라이브러리를 사용하면 코드 작성 과정에서 특히 AJAX 작업이 필요한 경우 많은 시간을 절약할 수 있습니다. 그러나 코드가 올바르게 작성된다면 기본 JavaScript는 항상 코드 라이브러리를 사용하는 것보다 더 빠르게 실행된다는 점을 기억해야 합니다. jQuery의 "each" 메서드는 루프 작업에 매우 편리하지만 원래 for 문을 사용하는 것이 항상 훨씬 더 빠릅니다.
23. Crockford의 JSON.Parse
JavaScript 2에는 JSON 프로세서가 내장되어 있지만 이 글을 쓰는 시점에는 우리는 여전히 그것을 직접 구현해야 합니다. JSON의 창시자인 Douglas Crockford는 우리가 즉시 사용할 수 있는 핸들러를 만들었습니다. 여기
<font face="新宋体">var response = JSON.parse(xhr.responseText); <br>var container = document.getElementById('container');<br>for(var i = 0, len = response.length; i < len; i ) {<br>container.innerHTML = '<li>' response.name ' : ' response.email '</li>';<br>}</font>
<font face="new宋体">var response = JSON.parse(xhr.responseText); </font>
var 컨테이너 = document.getElementById('container');for(var i = 0, len = response.length; i < len; i ) {
container.innerHTML = '
자세한 소개
<font face="新宋体"><script type="text/javascript" language="javascript"><br>...<br></script></font>
수년 전만 해도 언어는 여전히 모든 스크립트 태그의 필수 속성이었습니다. 클립보드에 콘텐츠 복사 코드:
<font face="新宋体"><script type="text/javascript" 언어="javascript"><br>...</ script></font>
그런데 이 속성은 오랫동안 쓸모가 없었으니... 그러니 삭제하세요! 그렇습니다 친구들~그렇습니다. JavaScript 초보자를 위한 24가지 팁입니다. 사랑하는 친구 여러분, 어떻게 생각하시나요? 빠른 팁이 있나요? 읽어주셔서 감사합니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Mistlock Kingdom은 플레이어가 Sons of Fire로 플레이하여 생존하고 탐험할 수 있는 오픈 월드 게임입니다. 이 게임은 액션 RPG 도전의 독특한 엔터테인먼트를 결합하여 플레이어에게 끝없는 놀라움과 즐거움을 선사합니다. 게임에서 플레이어는 자원, 환경, 무기 등을 탐색할 수 있습니다. 일부 초보 플레이어는 게임을 시작하는 방법에 대해 궁금해할 수 있습니다. 이 소개 및 공유에서는 관련 시작 가이드를 제공할 것입니다. 안개 자물쇠 왕국 초보자를 위한 팁: 독기가 덮힌 지역의 위험 수준은 다릅니다. 탐사 과정에서 지도의 새로운 지역이 점차 잠금 해제되고 독기가 덮힌 지역의 위치를 확인할 수 있습니다. 맵은 두 가지 색상으로 구분됩니다. 파란색 영역은 짧은 시간 동안 입장할 수 있으며, 캐릭터의 능력치에 따라 머무를 수 있는 시간도 달라집니다.

WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

Anchor Arrival은 고화질 미소녀 2차원 테마를 갖춘 3D 턴제 카드 게임으로, 플레이어가 탐색하고 경험할 수 있는 풍부하고 흥미로운 캐릭터 조합을 제공합니다. 초보자도 궁금합니다.풀에서 추천하는 강력한 캐릭터는 무엇일까요? 앵커 포인트 강림은 초보자 풀의 강력한 캐릭터 추천을 살펴보겠습니다. 앨리스는 주로 단일 대상 천둥형 폭발 캐릭터입니다. 출력이 매우 폭발적이며 경험이 신규 사용자에게 매우 친숙하므로 선택하는 것이 좋습니다. 10골드 뽑기에는 "앨리스" + "영양" 조합을 선택하는 것이 좋습니다. 앨리스는 금파이어 속성을 출력하기에 가장 적합한 캐릭터이며, 초보자 카드 풀의 다른 두 캐릭터보다 조금도 강하지 않습니다. 앨리스는 스페셜을 통과할 수 있습니다

PyCharm 초보자를 위한 필수 기술: 일괄 들여쓰기 사용을 마스터하려면 특정 코드 예제가 필요합니다. 개요: PyCharm은 개발자가 효율성을 향상하는 데 도움이 되는 많은 실용적인 도구와 기능을 제공하는 강력한 Python 통합 개발 환경(IDE)입니다. 일상적인 코딩 과정에서 우리는 코드 형식을 깔끔하고 아름답게 유지하기 위해 코드를 들여쓰기해야 하는 경우가 많습니다. PyCharm에서 제공하는 일괄 들여쓰기 기능을 사용하면 코드를 빠르게 일괄 들여쓰기하고 코딩 효율성을 높일 수 있습니다. 이 기사에서는 Py를 살펴보겠습니다.

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

Crown of the Ancients는 서양의 마법 모험을 기반으로 한 고품질 전략 카드 모바일 게임입니다. 게임 내 비밀 탐험, 폐허 모험, 전국 챔피언십 및 기타 특별한 게임 플레이가 여러분의 경험을 기다리고 있습니다. 따라서 초보 플레이어가 이 게임을 빨리 시작하고 싶다면 초보 가이드가 필수입니다. 오늘 편집자가 관련 가이드를 가져올 것이므로 살펴보겠습니다. 고대 왕관 초보자 가이드, 게임 플레이 및 지역 개방 스타일 개요: 1. 다이아몬드 축적 흐름: 모든 것이 다이아몬드 축적에 중점을 두고 있으며, 마을을 떠난 후 열심히 일하기 시작합니다. 다이아몬드가 필요한 주요 마법 무기, 세 가지 플라이휠 활동 등을 제외하고 나머지는 무시됩니다. 주요 초점은 그 중 하나에 집중하지 말고 최대한 많이 싸울 수 있습니다. , 그리고 강요하지 마세요. 장점: 다이아몬드를 모으기 위해 장난만 치면 됩니다. 마을을 떠난 후에는 다이아몬드로 최신 활동에 빠르게 액세스하고, 새로운 하드웨어 영웅 시리즈를 얻을 수 있으며, 다이아몬드가 깨질 수 있습니다.
