22+ 高频实用的 JavaScript 片段 (2020年)
时间:2022-07-24
本文章向大家介绍22+ 高频实用的 JavaScript 片段 (2020年),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
作者:xor 译者:前端小智 来源:medium
点赞再看,微信搜索 【大迁世界】 关注这个没有大厂背景,但有着一股向上积极心态人。本文
GitHub
https://github.com/qq44924588... 上已经收录,文章的已分类,也整理了很多我的文档,和教程资料。
废话不多话,在本文中,列出了一些比较常用或者实用的的 JavaScript 代码片段,希望对你们有所帮助。
1.三元运算符
let someThingTrue = true
if(someThingTrue){
handleTrue()
}else{
handleFalse()
}
****** 以下是简短版本 ******
let someThingTrue = true
someThingTrue ? handleTrue() : handleFalse()
2.短路或
运算
const defaultValue = "SomeDefaultValue"
let someValueNotSureOfItsExistance = null
let expectingSomeValue = someValueNotSureOfItsExistance || defaultValue
console.log(expectingSomeValue) // SomeDefaultValue
3. 条件成立
let someValue = true
if (someValue) {
console.log('条件成立!')
}
4. for
循环
for (let i = 0; i < 1e2; i++) { // 代替 i<100 是不是有点酷
}
let someValues = [1, 2, 4]
for (let val in someValues) {
console.log(val)
}
let obj = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3'
}
for (let key in obj) {
console.log(key)
}
5. 值到对象的映射
let x='x',y='y'
let obj = {x,y}
console.log(obj) // {x: "x", y: "y"}
6. Object.entries()
const credits = {
producer: '大迁世界',
name: '前端小智',
rating: 9
}
const arr = Object.entries(credits)
console.log(arr)
*** 输出 ***
[ [ 'producer', '大迁世界' ], [ 'name', '前端小智' ], [ 'rating', 9 ] ]
7. Object.values()
const credits = {
producer: '大迁世界',
name: '前端小智',
rating: 9
}
const arr = Object.values(credits)
console.log(arr)
*** 输出 ***
[ '大迁世界', '前端小智', 9 ]
8. 模板字面量
let name = '前端小智'
let age = 20
var someStringConcatenateSomeVariable = `我是 ${name},今年 ${age} 岁`
console.log(someStringConcatenateSomeVariable)
9. 解构赋值
import { observable, action, runInAction } from 'mobx';
10.多行字符串
let multiLineString = `some stringn
with multi-line ofn
charactersn`
console.log(multiLineString)
11.Array.find 简写
const pets = [{
type: 'Dog',
name: 'Max'
},
{
type: 'Cat',
name: 'Karl'
},
{
type: 'Dog',
name: 'Tommy'
}
]
pet = pets.find(pet => pet.type === 'Dog' && pet.name === 'Tommy')
console.log(pet) // { type: 'Dog', name: 'Tommy' }
12.默认参数值
早期的做法
function area(h, w) {
if (!h) {
h = 1;
}
if (!w) {
w = 1;
}
return h * w
}
ES6 以后的做法
function area(h = 1, w = 1) {
return h * w
}
13.箭头函数的简写
let sayHello = (name) => {
return `你好,${name}`
}
console.log(sayHello('前端小智'))
简写如下:
let sayHello = name => `你好,${name}`
console.log(sayHello('前端小智'))
14.隐式返回
let someFuncThatReturnSomeValue = (value) => {
return value + value
}
console.log(
someFuncThatReturnSomeValue('前端小智'))
简写如下:
let someFuncThatReturnSomeValue = (value) => (
value + value
)
console.log(someFuncThatReturnSomeValue('前端小智'))
15.函数必须有参数值
function mustHavePatamMethod(param) {
if (param === undefined) {
throw new Error('Hey You must Put some param!');
}
return param;
}
以像这样重写:
mustHaveCheck = () => {
throw new Error('Missing parameter!')
}
methodShoudHaveParam = (param = mustHaveCheck()) => {
return param
}
16.charAt() 简写
'SampleString'.charAt(0) // S
// 简写
'SampleString'[0]
17.有条件的函数调用
function fn1() {
console.log('I am Function 1')
}
function fn2() {
console.log('I am Function 2')
}
/*
长的写法
*/
let checkValue = 3;
if (checkValue === 3) {
fn1()
} else {
fn2()
}
简短的写法:
(checkValue === 3 ? fn1 : fn2)()
17.Math.Floor 简写
let val = '123.95'
console.log(Math.floor(val)) // 常规写法
console.log(~~val) // 简写
18.Math.pow 简写
Math.pow(2, 3) // 8
// 简写
2 ** 3 // 8
19.将字符串转换为数字
const num1 = parseInt('100')
// 简写
console.log(+"100")
console.log(+"100.2")
20.&& 运算
let value = 1;
if (value === 1)
console.log('Value is one')
//OR In short
value && console.log('Value is one')
21.toString 简写
let someNumber = 123
console.log(someNumber.toString()) // "123"
// 简写
console.log(`${someNumber}`) // "123"
22.可选的链运算符(即将发布?)
现在有一个关于ECMAScript的新提议,值得了解。
let someUser = {
name: 'Jack'
}
let zip = someUser?.address?.zip //可选链接,像 Swift
如果 zip
是undefined
,则不会引发错误。
该语法还支持函数和构造函数调用
let address = getAddressByZip.?(12345)
如果getAddressByZip
是调用它的函数,否则,表达式将以undefined
的形式计算。
23. 使用对象的方式来替换 switch 语法
let fruit = 'banana';
let drink;
switch (fruit) {
case 'banana':
drink = 'banana juice';
break;
case 'papaya':
drink = 'papaya juice';
break;
default:
drink = 'Unknown juice!'
}
console.log(drink) // banana juice
代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。
原文:https://medium.com/javascript...
- 一种简单的数据库性能测试方法
- xiaomao.com7位数高价成交,并已启用建站
- Docker基于已有的镜像制新的镜像-Docker for Web Developers(3)
- 如何通过Remoting实现双向通信
- jenkins 入门教程(上)
- 让jQuery Tools Scrollable控件在Mobile Web里面支持resize功能
- CentOS6.5上golang环境配置
- 马斯克频发推文,或在揭示特斯拉明年大动作?
- yum安装出现No package nodejs available解决办法
- InfoPath中repeationg section动态填充数据
- CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins
- jenkins 入门教程(中)
- docker学习(1) 安装
- Ajax等待返回结果时,弹出一个友好的等待提示
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 关于多线程中抛异常的这个面试题我再说最后一次!
- 卧槽!居然有比Flask更好用更简单的框架
- Java8基础学习(一)- Founction接口
- java数组详解
- 初识Java对象
- Java常用API(Scanner类)
- Java中多线程的使用(超级超级详细)线程安全+线程锁原理解析+保证线程安全的三种方式 (同步代码块+同步方法+lock锁) 5
- Java匿名对象介绍
- Java常用API(Random类)
- Java常用API(String类)
- 数据分析师,你是车夫,还是拉车的驴子
- Java常用API(Arrays类)
- Java常用API(Math类)
- Static关键字的使用
- tomcat 并发优化