大部分针对Javascript最合理的方法归纳。 原始类型我们可以直接使用值。ο stringο numberο booleanο nullο undefinedvar foo 1, bar foo; bar 9; console.log(foo, bar); // 1, 9• 复合类型我们通过引用对值进行间接访问。ο objectο arrayο functionvar foo [1, 2], bar foo; bar[0] 9; console.log(foo[0], bar[0]); // 9, 9Objects• 使用{}创建对象。// bad var item new Object(); // good var item {};• 不要使用保留字作为关键字。// bad var superman { class: superhero, default: { clark: kent }, private: true }; // good var superman { klass: superhero, defaults: { clark: kent }, hidden: true };Arrays• 使用[]创建数组// bad var items new Array(); // good var items [];• 如果你不知道数组长度使用Array#push。var someStack []; // bad someStack[someStack.length] abracadabra; // good someStack.push(abracadabra);• 当你需要复制数组的时候请使用Array#slice。var len items.length, itemsCopy [], i; // bad for (i 0; i len; i) { itemsCopy[i] items[i]; } // good itemsCopy items.slice();Strings• 对于字符串我们使用单引号。// bad var name Bob Parr; // good var name Bob Parr; // bad var fullName Bob this.lastName; // good var fullName Bob this.lastName;• 超过80个字符的字符串我们使用串联符号\让字符串多行显示。• 注意如果过度使用带串联符号的字符可能会影响到性能。// bad var errorMessage This is a super long error that was thrown because of Batman. When you stop to think about how Batman had anything to do with this, you would get nowhere fast.; // bad var errorMessage This is a super long error that \ was thrown because of Batman. \ When you stop to think about \ how Batman had anything to do \ with this, you would get nowhere \ fast.; // good var errorMessage This is a super long error that was thrown because of Batman. When you stop to think about how Batman had anything to do with this, you would get nowhere fast.;• 当我们在编程的时候需要拼接出一个字符串我们可以使用Array#join 代替字符串连接。尤其是对IE浏览器。var items, messages, length, i; messages [{ state: success, message: This one worked. },{ state: success, message: This one worked as well. },{ state: error, message: This one did not work. }]; length messages.length; // bad function inbox(messages) { items ul; for (i 0; i length; i) { items li messages[i].message /li; } return items /ul; } // good function inbox(messages) { items []; for (i 0; i length; i) { items[i] messages[i].message; } return ulli items.join(/lili) /li/ul; }Functions• 函数表达式// anonymous function expression var anonymous function() { return true; }; // named function expression var named function named() { return true; }; // immediately-invoked function expression (IIFE) (function() { console.log(Welcome to the Internet. Please follow me.); })();• 绝对不要在非函数块if,while申明一个函数。我们可以把函数申明变成一个函数表达式。// bad if (currentUser) { function test() { console.log(Nope.); } } // good if (currentUser) { var test function test() { console.log(Yup.); }; }

相关新闻

最新新闻

开放多智能体系统拓扑估计:从理论到实践的动态连接推断

开放多智能体系统拓扑估计:从理论到实践的动态连接推断

1. 项目概述:当多智能体系统“门户大开”时,我们如何看清其内部连接?在分布式人工智能和机器人集群的研究与应用中,多智能体系统(Multi-Agent Systems, MAS)早已不是什么新鲜概念。我们习惯于设想一个由多个…

2026/8/24 23:28:43
论文AI率检测结果忽高忽低怎么办,知网、维普与免费自查报告怎么看

论文AI率检测结果忽高忽低怎么办,知网、维普与免费自查报告怎么看

论文AI率检测结果忽高忽低怎么办,知网、维普与免费自查报告怎么看 论文AI率检测结果忽高忽低应该怎么正确解读?在毕业论文写作与自查的过程中,不少同学经常会遇到这种让人抓狂的现象:同一份学术初稿,送进 A 平台检测显…

2026/8/24 23:28:43
知网查AI率之前用什么网站摸底,三款每天免费检测工具横评

知网查AI率之前用什么网站摸底,三款每天免费检测工具横评

知网查AI率之前用什么网站摸底,三款每天免费检测工具横评 知网查AI率之前应该用什么网站进行自查摸底?进入毕业答辩前夕,各大高校的学位论文审查系统均已全面对接知网二代 AIGC 检测算法。很多同学在撰写开题报告、期刊论文或毕业大论文时&a…

2026/8/24 23:28:43
3步跑通本地解密导出:EchoTrace聊天记录零基础上手完全指南

3步跑通本地解密导出:EchoTrace聊天记录零基础上手完全指南

3步跑通本地解密导出:EchoTrace聊天记录零基础上手完全指南 【免费下载链接】echotrace EchoTrace 是一个本地、安全的微信聊天记录导出、分析与年度报告生成工具 | EchoTrace is a local, secure tool for exporting, analyzing, and generating annual reports of…

2026/8/24 23:28:43
LazyVim 安装与配置指南:三步把 Neovim 变成称手的 IDE

LazyVim 安装与配置指南:三步把 Neovim 变成称手的 IDE

LazyVim 安装与配置指南:三步把 Neovim 变成称手的 IDE 【免费下载链接】LazyVim Neovim config for the lazy 项目地址: https://gitcode.com/GitHub_Trending/la/LazyVim LazyVim 是一套基于 lazy.nvim 的 Neovim 完整配置方案,把 LSP、自动补全…

2026/8/24 23:28:43
软件交付与发布:从概念辨析到工程实践的全链路解析

软件交付与发布:从概念辨析到工程实践的全链路解析

1. 项目概述:从“交付”与“发布”的日常困惑说起在软件开发和项目管理的日常工作中,“交付”和“发布”这两个词被高频使用,但它们的界限却常常模糊不清。我见过不少团队,在项目复盘会上为“我们到底算交付了还是发布了”争论不休…

2026/8/24 23:23:43