本文已经过原作者 Taimoor Sattar 授权翻译。
Javascript 是浏览器可以理解的语言,它用于加载动态内容而无需刷新页面。今天列举一些用用更少的代码又更具可读性方式来编写 JS,肝货开始。
使用模板字符串
模板字符串是可以嵌入表达式中的字符串(变量),它可以让代码更加简单和易读。
var code = \"javascript\";
var str = ` I love ${code} I love ${code} `;
如果没有模板字符串,我们需要这么写:
var code = \"javascript\";
var str1 = \"n I love \" + code + \"n I love \" + code + \"n\";
使用三元运算符
在编程中,会遇到逻辑操作。如果要在两条语句之间执行逻辑,三元操作符的可读性要高得多。
let price= isMember ? \'$2.00\' : \'$10.00\'
使用Include语句
JS 中的 include 语句是一种在数组和句子中搜索字符串的更简单的方法。
var str = \"I love JavaScript.\";
var word = str.includes(\"javaScript\"); // result: true
数组也可以使用 include 方法:
var str = [\"taimoor\", \"ali\", \"umer\"];
var n = str.includes(\"taimoor\"); // result: true
空合并运算符
如果我们使用的是第三方API,可能会遇到相同的key-value不会出现在每个查询中。这样我们必须检查JSON中的空键,以免出现错误。
要检查空键,可以使用以下方法:
- 条件语句
- 空合并运算符(??)-(推荐)
例如,我们有如下JSON:
var person = {
name: \"Taimoor Sattar\",
age: 21,
metadata: {
hobby: \"football, blog\"
}
}
使用条件语句,我们可以访问JSON的 matadata 中的 hobby 属性,如下所示
let hobby = \"\";
if (person.metadata){
hobby = person.metadata.hobby ? person.metadata.hobby : \"\";
}
使用空合并操作符,我们只需要这样做:
let hobby = person.metadata?.hobby ?? \"\";
上面的代码检查JSON元数据中的 hobby 键,如果可用,则返回值,否则返回空字符串。
函数默认参数
JS 中的一些函数允许我们发送选项参数。根据可选参数,函数的返回值可以更改。
function outputName(name=\"taimoor\"){
return name;
}
let string1 = outputName(); // result: taimoor
let string2 = outputName(\"ali\"); // result: ali
参数的类型检查
在某些情况下,函数参数要有类型的限制,我们可以这样检查函数的类型:
function sum(a, b){
let result = (typeof a == \"number\" && typeof b == \"number\") ? a + b : null;
return result
}
sum(\"s\", 6) // result: null
sum(4, 6) // result: 10
使用 Try/Catch 包装代码
Try/Catch 语句用于检查代码中的错误。如果出错,将运行catch语句。
try{
functionnotexist();
}catch(e){
console.log(\"error\");
}
解构
通过解构,我们可以将复杂的结构提取我们需要的部分。
function outputName({name = \"taimoor\"}){ // De-structuring
return name;
}
var person = {
name: \"Taimoor Sattar\",
age: 21,
metadata: {
hobby: \"football, blog\"
}
}
let str = outputName(person); // Taimoor Sattar
编写DRY代码
DRY(不要重复自己),避免在代码中重复以免造成混淆。为避免代码混乱,可以遵循以下规则。
- 编写可重用函数
- 为变量和函数定义明确的名称
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。