목차
引用:
代码:
코드:
웹 프론트엔드 JS 튜토리얼 JavaScript 초보자를 위한 24가지 실용적인 팁 [TUTS]_javascript 기술

JavaScript 초보자를 위한 24가지 실용적인 팁 [TUTS]_javascript 기술

May 16, 2016 pm 06:51 PM
javascript 실용적인 조언 초보자

注:本文多次用到Firebug的console对象,请参考Firebug Console API 。关于firebug的更详细介绍,请猛击这里
1. 用 === 代替 ==

JavaScript里有两种不同的相等运算符:===|!== 和==|!=。相比之下,前者更值得推荐。请尽量使用前者。

引用:
“如果两个比较对象有着同样的类型和值,===返回true,!==返回false。”

– JavaScript: The Good Parts
不过,如果使用==和!=,在操作不同数据类型时, 你可能会遇到一些意想不到的问题。在进行相等判断前,JavaScript会试图将它们转换为字符串、数字或 Boolean量。

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 文档
完成代码之前,把它放到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>
6. 在 For 语句外部声明变量

当需要执行冗长的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>
这段代码每次都重新定义数组长度,每次都在遍历DOM寻找container元素 —— 太傻了!

这样好多了
复制内容到剪贴板
代码:
<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
8. 减少全局变量
引用:
“把你踩在全局的那些乱七八糟的脚印都归于一人名下,能显著降低与其他应用、小工具或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>
注意看,我们是如何戏剧化地把“乱七八糟的脚印”都归到“DudeNameSpace”这对象之下的。

9. 写好注释

可能一开始你会觉得并无必要,但相信我,你将来会主动想要尽可能写好代码的注释的。当你几个月后再回看某项目时,结果却发现很难想起当时写某句东西时脑子在想的什么了,是不是很让人沮丧呢?或者,如果有同事要修订你的代码呢?一定,一定要为你代码里的重要部分加上注释。
复制内容到剪贴板
代码:
<font face="新宋体">// 遍历数组,输出各自名称<br>for(var i = 0, len = array.length; i < len; i++) {<BR> console.log(array);<BR>}</FONT>
10. 试试渐进增强

一定要记得为未启用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>
不仅执行不高效,而且和 eval 函数有着同样的高风险。千万不要把字串传递给 setInterval 和 setTimeout。恰当的做法是,传递一个函数名:
复制内容到剪贴板
代码:
<FONT face=新宋体>setInterval(someFunction, 3000);</FONT>
12. 不要使用with语句

初识之下,“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>
不幸的是,测试表明,若你要为对象插入新成员,with的表现非常糟糕,它的执行速度非常缓慢。替代方案是声明一个变量:
复制内容到剪贴板
代码:
<FONT face=新宋体>var o = being.person.man.bodyparts;<BR>o.arms = true;<BR>o.legs = true;</FONT>
13. 使用 {},而不用New Object()

在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
14. 使用[],而不用New Array()

新建数组时的同类型运用。

行得通的写法
复制内容到剪贴板
代码:
<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
15. 一长列变量声明?别写那么多var,用逗号吧
复制内容到剪贴板
代码:
<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>
18. “For in” 语句

遍历对象时,你可能会发现你还需要获取方法函数。所以遇到这种情况时,请一定记得给你的代码包一层 if 语句,用以过滤信息。
复制内容到剪贴板
代码:
<FONT face=新宋体>for(key in object) {<BR> if(object.hasOwnProperty(key) {<BR> ...then do something...<BR> }<BR>}</FONT>
引自[/i][i] Douglas Crockford 所作:[/i][i] JavaScript: The Good Parts

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>
20. 읽고, 읽고, 읽고… 읽고, 읽고…

저는 웹 개발 블로그의 열렬한 팬입니다. 밥먹고 자기전에 을 읽는 수밖에 없는 것 같아요~ 침대 옆 탁자 위에 웹 개발에 관한 좋은 책을 올려두세요! 다음 도서 목록은 제가 가장 좋아하는 도서 목록입니다.



읽기 …여러 번 읽어보세요! 지금도 계속 읽고 있어요.

21. 자체 결정 기능

함수 호출에 비해 페이지 로드 시 자동으로 함수가 로드되거나 상위 함수가 호출되도록 함 호출되는 매우 간단하고 편리한 실행 방법입니다. 함수를 상위 항목으로 묶고 추가 괄호를 추가하면 기본적으로 정의한 함수가 실행됩니다(자세히 알아보기).
클립보드에 콘텐츠 복사
코드:
<font>(function doSomething() {<code id="code28"><font face="新宋体">(function doSomething() {<br>   return {<br>      name: 'jeff',<br>      lastName: 'way'<br>   };<br>})();</font> return {
name: 'jeff', lastName: 'way' };})();


22. 기본 JavaScript는 코드 라이브러리를 사용하는 것보다 항상 빠릅니다


jQuery 및 Mootools와 같은 JavaScript 라이브러리를 사용하면 코드 작성 과정에서 특히 AJAX 작업이 필요한 경우 많은 시간을 절약할 수 있습니다. 그러나 코드가 올바르게 작성된다면 기본 JavaScript는 항상 코드 라이브러리를 사용하는 것보다 더 빠르게 실행된다는 점을 기억해야 합니다. jQuery의 "each" 메서드는 루프 작업에 매우 편리하지만 원래 for 문을 사용하는 것이 항상 훨씬 더 빠릅니다.

23. Crockford의 JSON.Parse
JavaScript 2에는 JSON 프로세서가 내장되어 있지만 이 글을 쓰는 시점에는 우리는 여전히 그것을 직접 구현해야 합니다. JSON의 창시자인 Douglas Crockford는 우리가 즉시 사용할 수 있는 핸들러를 만들었습니다. 여기
에서 다운로드할 수 있습니다.
이 코드를 가져오면 새로운 JSON 전역 개체를 생성한 다음 .json 파일을 처리할 수 있습니다. <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 = '
  • ' response.name ' : ' response.email '
  • ';}JSON의 경우
    자세한 소개
    를 참조하세요.
    24. "언어" 제거 <font face="新宋体"><script type="text/javascript" language="javascript"><br>...<br></script></font>


    수년 전만 해도 언어는 여전히 모든 스크립트 태그의 필수 속성이었습니다. 클립보드에 콘텐츠 복사 코드:
    <font face="新宋体"><script type="text/javascript" 언어="javascript"><br>...</ script></font>그런데 이 속성은 오랫동안 쓸모가 없었으니... 그러니 삭제하세요! 그렇습니다 친구들~그렇습니다. JavaScript 초보자를 위한 24가지 팁입니다. 사랑하는 친구 여러분, 어떻게 생각하시나요? 빠른 팁이 있나요? 읽어주셔서 감사합니다.
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

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

    인기 기사

    R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
    2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 최고의 그래픽 설정
    2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
    2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

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

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

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

    초보자에게 가이드를 제공하기 위한 Mist Lock Kingdom 플레이 팁 초보자에게 가이드를 제공하기 위한 Mist Lock Kingdom 플레이 팁 Jan 28, 2024 pm 03:33 PM

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

    WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 Dec 17, 2023 pm 02:54 PM

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

    앵커포인트 강림절 초보자를 위한 회사 캐릭터 추천 10가지 앵커포인트 강림절 초보자를 위한 회사 캐릭터 추천 10가지 Feb 20, 2024 pm 02:30 PM

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

    일괄 들여쓰기 사용법을 배우는 것은 PyCharm 초보자가 반드시 숙달해야 하는 기술입니다. 일괄 들여쓰기 사용법을 배우는 것은 PyCharm 초보자가 반드시 숙달해야 하는 기술입니다. Dec 30, 2023 pm 12:58 PM

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

    WebSocket 및 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 WebSocket 및 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 Dec 17, 2023 pm 05:30 PM

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

    WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 Dec 17, 2023 am 09:39 AM

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

    JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 Dec 17, 2023 pm 12:09 PM

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

    고대 왕관 초보자 가이드 및 게임 플레이 소개 고대 왕관 초보자 가이드 및 게임 플레이 소개 Feb 20, 2024 am 11:20 AM

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

    See all articles