当前位置: 首页 > news >正文

javascript 的奇技巧淫一

文章目录

    • 1 、使用 !! 转换为布尔值
    • 2 、 短 If-Else 的三元运算符\
    • 3、 默认函数参数
    • 4 、动态字符串的模板文字
    • 5、解构赋值
    • 6、用于数组和对象克隆的扩展运算符
    • 7 、短路求值
    • 8、可选链接 (?.)
    • 9、空值合并运算符 (??)


1 、使用 !! 转换为布尔值

// 使用双重否定快速将任何值转换为布尔值。
let a = !!1; // true
let b = !!0; // false

2 、 短 If-Else 的三元运算符\

let price = 100;
let message = price > 200 ? "Expensive" : "Cheap";

3、 默认函数参数

// 设置函数参数的默认值以避免定义错误。
function greet(name = "Guest") {return `Hello, ${name}!`;
}

4 、动态字符串的模板文字

// 使用模板文字将表达式嵌入字符串中。es6
let item = "coffee";
let price = 15;
console.log(`One ${item} costs $${price}.`);

5、解构赋值

// 轻松从对象或数组中提取属性。
let [x, y] = [1, 2];
let {name, age} = {name: "Alice", age: 30};

6、用于数组和对象克隆的扩展运算符

// 克隆数组或对象而不引用原始对象。
let originalArray = [1, 2, 3];
let clonedArray = [...originalArray];

7 、短路求值

// 使用逻辑运算符进行条件执行
let isValid = true;
isValid && console.log("Valid!");

8、可选链接 (?.)

// 如果引用为空,则安全地访问嵌套对象属性而不会出现错误。
let user = {name: "John", address: {city: "New York"}};
console.log(user?.address?.city); // "New York"

9、空值合并运算符 (??)

// 使用 ?? 为空或未定义提供默认值。
let username = null;
console.log(username ?? "Guest"); // "Guest"

10、使用 map、filter 和 reduce 进行数组操作

// 无需传统循环即可优雅地处理数组。
// Map
let numbers = [1, 2, 3, 4];
let doubled = numbers.map(x => x * 2);// Filter
const evens = numbers.filter(x => x % 2 === 0);// Reduce
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java面试八股之JDK 动态代理和 CGLIB 动态代理的区别
  • 用户画像系列——Spark任务调优实践
  • mysql问题解决
  • 【Material-UI】Icon Button 组件详解
  • 【2.4 python中的基本输入和输出】
  • 【vulnhub】Bob:1.0.1靶机
  • Redis入门概述
  • vulnhub之serial
  • 工作中,如何有效解决“冲突”?不回避,不退让才是最佳方式
  • 盘点Hutool6.0中新增的那些方法(上)
  • Day6
  • 缓冲流练习
  • js第二天
  • 最强开源文生图模型一夜易主!SD一作、Stabililty AI核心成员Robin Rombach下场创业了,一出手就是王炸。
  • Python 爬虫项目实战(一):爬取某云热歌榜歌曲
  • Computed property XXX was assigned to but it has no setter
  • conda常用的命令
  • JavaScript异步流程控制的前世今生
  • Java-详解HashMap
  • Joomla 2.x, 3.x useful code cheatsheet
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Python语法速览与机器学习开发环境搭建
  • tweak 支持第三方库
  • uva 10370 Above Average
  • Web Storage相关
  • windows下使用nginx调试简介
  • 阿里云前端周刊 - 第 26 期
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 反思总结然后整装待发
  • 浮现式设计
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端代码风格自动化系列(二)之Commitlint
  • 提醒我喝水chrome插件开发指南
  • 通信类
  • ​2020 年大前端技术趋势解读
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • (1)STL算法之遍历容器
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (C++哈希表01)
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (待修改)PyG安装步骤
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)jQuery 基础
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .Net Core 笔试1
  • .Net Core 中间件与过滤器
  • .Net Core缓存组件(MemoryCache)源码解析
  • /etc/fstab和/etc/mtab的区别
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • [18] Opencv_CUDA应用之 基于颜色的对象检测与跟踪