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

素材网站的素材可以商用吗自动外链工具

素材网站的素材可以商用吗,自动外链工具,外贸在什么网站做,现在网站建设还用测浏览器吗目录 JavaScript运算符 一、运算符分类与优先级 1. 运算符优先级表 二、算术运算符 1. 基础算术运算 2. 自增/自减运算符 三、比较运算符 1. 基础比较 2. 相等性判断 四、逻辑运算符 1. 基础逻辑运算 2. 短路求值(Short-Circuiting) 3. 逻辑…

目录

JavaScript运算符

一、运算符分类与优先级

1. 运算符优先级表

二、算术运算符

1. 基础算术运算

2. 自增/自减运算符

三、比较运算符

1. 基础比较

2. 相等性判断

四、逻辑运算符

1. 基础逻辑运算

2. 短路求值(Short-Circuiting)

3. 逻辑赋值运算符(ES2021+)

五、位运算符

1. 基础位运算

六、其他运算符

1. 三元条件运算符

2. 空值合并运算符(??)

3. 可选链运算符(?.)

4. 展开运算符(...)

七、常见陷阱与最佳实践

1. == 的隐式类型转换

2. 浮点数精度问题

3. 短路求值的灵活应用

JavaScript逻辑中断

一、逻辑与 && 的短路

1. 假值列表

2. 示例

二、逻辑或 || 的短路

三、空值合并 ?? 的精准短路

四、实际应用场景

1. 条件执行函数

2. 链式属性访问

3. 组合使用

五、注意事项

六、总结


JavaScript运算符


一、运算符分类与优先级

1. 运算符优先级表

优先级从高到低排序(部分常见运算符):

优先级运算符说明
1()括号(强制优先级)
2++--!~typeof自增、自减、逻辑非、按位非等
3**指数(ES6+)
4*/%乘、除、取模
5+-加、减
6<<>>>>>位左移、右移、无符号右移
7<<=>>=比较运算符
8==!====!==相等性判断
9&按位与
10^按位异或
11|按位或
12&&逻辑与
13||逻辑或
14??空值合并(ES2020+)
15?:三元条件运算符
16=+=-=**= 等赋值运算符
17,逗号运算符(返回最后一个表达式)

二、算术运算符

1. 基础算术运算

运算符名称示例说明
+加法3 + 2 → 5数值相加或字符串拼接
-减法5 - 3 → 2
*乘法2 * 3 → 6
/除法6 / 2 → 3结果为浮点数(如 5 / 2 → 2.5
%取模7 % 3 → 1返回除法余数
**指数2 ** 3 → 8ES6+ 新增,等价于 Math.pow()

2. 自增/自减运算符

运算符示例说明
++let a = 1; a++后置自增:先返回值,再自增 → a 变为 2
--let b = 2; --b前置自减:先自减,再返回值 → b 变为 1
let i = 1
console.log(i++ + ++i + i)  //7

注意:避免在复杂表达式中混用前置和后置形式,易引发歧义。


三、比较运算符

1. 基础比较

运算符名称示例说明
>大于5 > 3 → true
<小于2 < 1 → false
>=大于等于5 >= 5 → true
<=小于等于3 <= 2 → false

2. 相等性判断

运算符名称示例说明
==宽松相等"5" == 5 → true类型不同时尝试转换再比较
===严格相等"5" === 5 → false值和类型均相同才返回 true
!=宽松不等"5" != 5 → false等效于 !(a == b)
!==严格不等"5" !== 5 → true等效于 !(a === b)

最佳实践:始终优先使用 === 和 !==,避免隐式类型转换导致的意外结果。


四、逻辑运算符

1. 基础逻辑运算

运算符名称示例说明
&&逻辑与true && false → false两边为 true 才返回 true
||逻辑或true || false → true任一边为 true 即返回 true
!逻辑非!true → false取反

2. 短路求值(Short-Circuiting)

  • && 短路:若左侧为假,直接返回左侧值,否则返回右侧值。

    console.log(0 && "Hello"); // 0(左侧为假,直接返回)
    console.log(2 && "Hello"); // "Hello"
  • || 短路:若左侧为真,直接返回左侧值,否则返回右侧值。

    console.log("" || "Default"); // "Default"
    console.log("Hello" || "Default"); // "Hello"

3. 逻辑赋值运算符(ES2021+)

运算符示例等效于
&&=a &&= ba = a && b
||=a ||= ba = a || b
??=a ??= ba = a ?? b(空值合并赋值)

五、位运算符

1. 基础位运算

运算符名称示例说明
&按位与5 & 3 → 1二进制位均为 1 时结果为 1
|按位或5 | 3 → 7二进制位任一为 1 则结果为 1
^按位异或5 ^ 3 → 6二进制位不同则结果为 1
~按位非~5 → -6取反码(二进制位取反)
<<左移5 << 1 → 10左移指定位数,右侧补 0
>>右移(有符号)-5 >> 1 → -3保留符号位,右侧补 0
>>>右移(无符号)-5 >>> 1 → 2147483645忽略符号位,左侧补 0

六、其他运算符

1. 三元条件运算符

  • 语法condition ? expr1 : expr2

    const status = age >= 18 ? "Adult" : "Minor";

2. 空值合并运算符(??)

  • 作用:左侧为 null 或 undefined 时返回右侧值,否则返回左侧值。

    const value = input ?? "default"; 
    // 等效于 input !== null && input !== undefined ? input : "default"

3. 可选链运算符(?.)

  • 作用:安全访问嵌套对象属性,避免因中间属性不存在而报错。

    const city = user?.address?.city; 
    // 若 user 或 address 为 null/undefined,返回 undefined

4. 展开运算符(...)

  • 数组展开

    const arr1 = [1, 2];
    const arr2 = [...arr1, 3]; // [1, 2, 3]
  • 对象展开(ES2018+):

    const obj1 = { x: 1 };
    const obj2 = { ...obj1, y: 2 }; // { x: 1, y: 2 }

七、常见陷阱与最佳实践

1. == 的隐式类型转换

console.log([] == ![]); 
// true([] 转为 0,![] 转为 false → 0)

解决方案:始终使用 === 和 !==

2. 浮点数精度问题

console.log(0.1 + 0.2 === 0.3); 
// false(实际结果为 0.30000000000000004)

解决方案:使用 toFixed() 或第三方库(如 decimal.js)处理精度。

3. 短路求值的灵活应用

// 条件执行函数
function init() { console.log("Initialized"); }
let isInit = false;
isInit || init(); // 若未初始化,则调用 init()

   

JavaScript逻辑中断


一、逻辑与 && 的短路

规则:当左侧表达式为 假值(falsy) 时,直接返回左侧值,不再执行右侧。

1. 假值列表

  • false

  • 0-00n(BigInt 零)

  • ""(空字符串)

  • null

  • undefined

  • NaN

2. 示例

// 示例 1:短路发生
console.log(0 && alert("不会执行")); // 输出 0(左侧为假,直接返回 0)// 示例 2:未短路
console.log(1 && "Hello"); // 输出 "Hello"(左侧为真,返回右侧值)// 实际应用:条件渲染(React/Vue)
isLoggedIn && <Dashboard />;

二、逻辑或 || 的短路

规则:当左侧表达式为 真值(truthy) 时,直接返回左侧值,不再执行右侧。

示例

// 示例 1:短路发生
console.log("Hello" || alert("不会执行")); // 输出 "Hello"// 示例 2:未短路
console.log(0 || "默认值"); // 输出 "默认值"// 实际应用:设置默认值(旧版写法)
const port = config.port || 3000; // 注意:0 会被覆盖!

三、空值合并 ?? 的精准短路

规则:仅当左侧为 null 或 undefined 时,才返回右侧值。

示例

// 示例 1:不短路
console.log(0 ?? "默认值"); // 输出 0(保留 0)// 示例 2:短路发生
console.log(null ?? "备用值"); // 输出 "备用值"// 实际应用:精准默认值(现代推荐)
const port = config.port ?? 3000; // 允许 0 或 ""

四、实际应用场景

1. 条件执行函数

// 仅当用户存在时调用函数
user.isAdmin && showAdminPanel();// 替代写法
if (user.isAdmin) showAdminPanel();

2. 链式属性访问

// 安全访问嵌套属性(旧版)
const city = user && user.address && user.address.city;// 现代替代方案:可选链操作符 `?.`
const city = user?.address?.city;

3. 组合使用

// 复杂条件判断
const result = (condition1 && value1) || (condition2 && value2) ?? fallback;

五、注意事项

  1. 优先级问题
    逻辑运算符优先级:&& > || > ??,建议用 () 明确优先级:

    console.log(true || false && false); 
    // 输出 true(等价于 true || (false && false))
  2. 副作用控制
    短路特性可能导致右侧代码未执行:

    let x = 0;
    false && x++; // x 仍为 0
  3. 避免过度使用
    虽然简洁,但过度使用会降低可读性:

    // ❌ 难以理解
    isValid && (isAdmin || isModerator) && submitForm();// ✅ 更清晰
    if (isValid && (isAdmin || isModerator)) {submitForm();
    }

六、总结

  • &&:用于 必须满足前置条件 的场景(如权限检查)。

  • ||:适合旧版默认值,但会覆盖假值(0、"")。

  • ??:现代默认值方案,精准处理 null/undefined


http://www.cadmedia.cn/news/9400.html

相关文章:

  • 外国媒体新闻网站全网营销系统是不是传销
  • 没有面板的服务器怎么建设网站广东互联网网络营销推广
  • 红动中国设计网站官网专业软文发布平台
  • 教育局网站建设方案搜索引擎推广的三种方式
  • 单页面网站制作百度推广代理商名单
  • 电子商务毕业设计设计网站建设关键词排名代做
  • 宠物网站建设策划方案seo学校培训课程
  • 东莞教育网站建设百度应用app
  • 评论网站建设网站注册地址查询
  • 有免费建网站网站免费优化软件
  • 如何从下载的视频查到原网站徐州百度推广总代理
  • 网站建设361网页设计效果图及代码
  • 开一个平台需要多少钱?提升网页优化排名
  • 做网站的公司跑了网站关键词排名手机优化软件
  • 建立自我优化网站技术
  • 徐州制作网站软件免费收录软文网站
  • 张家港快速网站建设线上推广的方法
  • 建设个人网站的要求免费个人自助建站
  • 泊头市网站制作公司搜索引擎技术
  • 网页生成pdf失败百度seo流量
  • 网站主持人制作网站代言人网络推广代理平台
  • 政府门户网站建设的问题与对策上海网站seo诊断
  • 门户网站建设的平台关于手机的软文营销
  • 河北网站建设搭建网页设计个人网站
  • ftp网站建设游戏代理平台有哪些
  • 国外企业建站百度域名收录提交入口
  • 南京h5 网站建设汕头seo推广
  • 企业网站开发需求文档制作网页链接
  • dedecms做网站教程荆州seo推广
  • 亲子游网站建设内容广告投放是做什么的