1. 标识符只是一个名称,用于命名常量,变量,属性,函数和类,并为JavaScript代码中的某些循环提供标签。以字母,下划线或美元符号开头。数字不允许作为第一个字符。
    与任何语言一样,Javascript保留某些标识符供语言本身使用。保留字不能作为常规标识符。
  2. 哪个 if 适合程序,取决于给str赋什么值
if(str !== null){...} // 不为空才会执行 与null比较
if(str){...} // 不为假值或者任何假值(null或未定义)时执行

undefined表示系统级的,意外的或类似错误的值缺失
null表示程序级的,正常的或预期的值缺失
如果需要分配一些值的一个变量或属性,或传递或返回这些值的一个函数,通常使用null

  1. 将对象(或数组)赋值给变量只会赋值引用,它不会创建对象的新副本。如果要创建对象或数组的新副本,则必须显式复制对象的属性或数组的元素。
let a = ["a", "b", "c"]; // 要复制的数组
let b = []; // 新定义的数组
for(let i = 0; i < a.length; i++){b[i] = a[i]; // 将a的元素复制到b
}
let c = Array.from(b); // es6中使用数组复制

如果要比较两个不同的对象或数组,则必须比较它们的属性或元素。定义如下函数比较两个数组

function equalArrays(a, b){if(a === b) return true; // 相同的数组是相等的if(a.length !== b.length) return false; // 不同大小数组不相等for(let i = 0; i< a.length; i++){ // 循环遍历所有元素if(a[i] !== b[i]) return false; // 如果有差异 数组不相等}return true; // 否则它们是相等的
}
  1. 除null或undefined之外的任何值都有 toString() 方法,该方法的结果通常与 String() 函数返回的结果相同。
  2. 调用表达式 ?.()
function square(x, log){if(log){log(x)}return x*x
}
// 使用es2020条件调用语法
function square(x, log){log?.(x);return x*x;
}

?.() 仅检查左侧的值是否为空或未定义。它不验证该值是否为一个函数。因此,如果传递两个数字给以上示例,它仍然会引发异常。

o.m() // 常规属性访问 常规调用 必须有属性m对象 并且该属性的值必须是函数
o?.m() // 条件属性访问 常规调用 如果o为null或未定义 则表达式的计算结果为未定义 但是如果o有任何其他值 那么必须有一个属性m 其值是一个函数
o.m?.() // 常规属性访问 条件调用 o不能为null或未定义 如果它没有属性m 或者该属性的值为null 则整个表达式的结果未undefined
  1. 递增(++)
    递增运算符的返回值取决于它相对于操作数的位置。在操作数之前使用,被称为预递增运算符,它递增操作数并计算该操作数的递增值。当在操作数之后使用时,它被称为后增量运算符,它增加其操作数,但计算为该操作数的未增加量。
let i = 1, j = ++i; // i 和 j 都是 2
let n = 1, m = n++; // n为2 m为1

减量–运算符与递增++一样。

  1. 比较运算符
1+2; // 3 相加
'1' + '2'; // '12'
'1' + 2; // '12' 2转换为'2'
11 < 3; // false 数值比较
'11' < '3'; // true 字符串比较
'11' < 3; // flase 数字比较 '11'转换为11
'one' < 3; // false 数值比较 'one'转换为 NaN

总结:

  • 表达式是javascript程序的短语
  • 任何表达式都可以计算为javascript值
  • 除了产生值之外,表达式还可能具有副作用(例如变量赋值)
  • 诸如文字,变量引用和属性访问之类的简单表达式可以与运算符组合以生成更大的表达式
  • javascript定义里算术,比较,布尔逻辑,赋值和位操作的运算符,以及一些杂项运算符,包括三元条件运算符
  • javascript+运算符用于添加数字和链接字符串
  • 逻辑运算符&&和||有特殊的短路行为,有时只评估它们的一个论点

javascript权威指南7(一)相关推荐

  1. 《JavaScript权威指南》笔记(一)

    2019独角兽企业重金招聘Python工程师标准>>> <JavaScript权威指南>真是名符其实的好书!真遗憾初学JavaScript时没有立即读这本书,甚为遗憾.不 ...

  2. 经典的《JavaScript 权威指南》中的“对象”不经典

    这些天在为Qomo项目写"JavaScript面向对象的支持"这组文章.也一直在期待网上购得的那本<JavaScript 权威指南>(第四版)快快到来. 在前公司,有这 ...

  3. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  4. JavaScript 权威指南-学习笔记(一)

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! JavaScript 权威指南-学习笔记 ...

  5. Javascript权威指南学习笔记一:数据类型

    决定从最基础的开始学JavaScript,最近看了<<Javascript权威指南>>第3章,记些笔记备忘. 本章一个重点是类型.按我的理解应该如下表所示: 复合类型中,关联数 ...

  6. 《JavaScript权威指南》——JavaScript核心

    前言 这本由David Flanagan著作,并由淘宝前端团队译的<JavaScript权威指南>,也就是我们俗称的"犀牛书",算是JS界公认的"圣经&quo ...

  7. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  8. javascript权威指南 学习笔记之变量作用域

    最近一直在看<javascript权威指南 第五版>,变量作用域这一章,看得真的有点累.不过,收获还是多多. 不知道,大家对语言中变量的"声明"与"定义&qu ...

  9. 《JavaScript权威指南》笔记(四)

    2019独角兽企业重金招聘Python工程师标准>>> 第四篇笔记的内容主要涉及:javascript中的各种语句. 1. switch语句: (1)其中的case表达式采用===匹 ...

  10. 翻译:《JavaScript 权威指南(第5版)》第一章(一)

    声明:翻译只有一个目的:学习用途.若有版权问题请及时联系本人. 本贴文根据篇幅将第一章的翻译分为两个部分,这是第一部分的内容. Chapter 1. Introduction to JavaScrip ...

最新文章

  1. 多形态MVC式Web架构:完成实时响应
  2. python基础课程_学习笔记13:标准库:有些收藏夹——sys
  3. 【学习笔记】比较分别用prim和kruskal实现最小生成树和算法优化方案
  4. python standardscaler_Python快速实战机器学习之数据预处理
  5. memcachedd事件模型
  6. sql server 锁与事务拨云见日(下)
  7. 《南溪的目标检测学习笔记》——权重初始化
  8. 别再用 Visio 了!试试这个比它快 10 倍的画图工具不香吗?
  9. sql_全国省市区、邮编、经纬度、城市拼音、电话区号
  10. mysql查询数据库修改记录_11. 查询数据库各种历史记录
  11. linux查看网卡带宽命令,Linux查看网卡带宽的两个命令
  12. mic in和line in
  13. 远程唤醒电脑WOL(Wake On LAN - 局域网唤醒)
  14. Excel 数据透视表教程大全之 01 什么是数据透视表 如何创建数据透视表
  15. linux卸载nps,Linux NPS服务部署
  16. android设备如何苹果,手机怎么玩:如何像安卓一样管理iPhone文件?_苹果 iPhone 5_手机生活新闻-中关村在线...
  17. 大话设计模式(Java代码)
  18. 〖Python 数据库开发实战 - Python与MySQL交互篇⑧〗- 项目实战 - 开发新闻管理系统(项目展示)
  19. Xshell个人家庭免费版
  20. 低代码、高敏捷的智和网管平台,运维平台二次开发极简化

热门文章

  1. Socket接口测试
  2. hbase查询列表数据返回rowKey
  3. exit(0)和exit(1)的区别
  4. 穿越计算机的迷雾笔记
  5. mysql中等号不是谓词_(2.3)以下哪个不是谓词公式
  6. 微信小程序视频视频背景与控制处理(笔记)
  7. Mybatis将大于号、小于号进行转译
  8. 11、注入篇--宽字节注入
  9. 【2023年第三届长三角高校数学建模竞赛】A 题 快递包裹装箱优化问题 20页完整论文及代码
  10. 覆铜板加工成电路板最容易出现哪些质量问题?