JavaScript高级程序设计基础(四)

上接语言基础:JavaScript高级程序设计基础(三)

2.3.8 Object类型

let obj=new Object()
  • hasOwnProperty(propertyName) :判断当前对象实例(不是原型)上是否存在给定的属
    性。要检查的属性名必须是字符串(如 o.hasOwnProperty("name") )或符号
  • isPrototypeOf( object ):用于判断当前对象是否为另一个对象的原型。
  • toString() :返回对象的字符串表示
  • valueOf() :返回对象对应的字符串、数值或布尔值表示。通常与 toString() 的返回值相同。   

2.4 操作符 

2.4.1 一元操作符

1. 譬如a++,++a等,使用方法不作过多赘述,这里讲一下遵循的规则

  • 对于字符串,如果是有效的数值形式,则转换为数值再应用改变。变量类型从字符串变成数值。
  • 对于字符串,如果不是有效的数值形式,则将变量的值设置为 NaN 。变量类型从字符串变成
  • 数值。
  • 对于布尔值,如果是 false,则转换为 0 再应用改变。变量类型从布尔值变成数值。
  • 对于布尔值,如果是 true,则转换为 1 再应用改变。变量类型从布尔值变成数值。
  • 对于浮点值,加 1 或减 1
  • 如果是对象,则调用其valueOf()方法取得可以操作的值。对得到的
  • 值应用上述规则。如果是 NaN,则调用 toString()并再次应用其他规则。变量类型从对象变成
  • 数值。
//这里用对象进行举例
let o={valueOf(){return -1;}
}
o++ //0

2.一元加和减

        +num可以将非数值类型转换为数值;-num把数值/非数值转换为符号相反的数(正数转换为负数,负数转换为正数)。一元加和减的非数值转换规则和上述一样

2.4.2 位操作符

~:按位非,按位去反

&:按位与,只有都是1才取1

|:按位非,有1就是1

^:按位异或,相同的就是1

<<:左移,>>:右移(左右移会保留符号位,无符号左移:<<<)

2.4.3 布尔操作符

逻辑非与或不做过多解释,这里讲一下特殊的点

!!:相当于调用Boolean()

console.log(!!"blue"); // true

当进行逻辑与、或时如果第一个判断条件已经可以得出结果,那么将不会进行第二个判断条件:即便第二个判断条件会报错,但只要第一个判断条件能得出结果,整个判断语句就不会报错。

2.4.4 乘性操作符

  • 乘除基本用法将不赘述,以下是注意点
  • 如果是 Infinity 乘以 0,则返回 NaN
  • 如果是 Infinity 除以 Infinity,则返回 NaN
  • 如果是 0 除以 0,则返回 NaN
  • 如果是非 0 的有限值除以 0,则根据第一个操作数的符号返回 Infinity -Infinity
  • 非常规的模算法都将返回NaN(除了被除数是有限值,除数是无限值,将返回被除数)
  • 如果有不是数值的操作数,则先在后台用 Number()将其转换为数值

2.4.5指数操作符

        当指数小于1时则为开根

console.log(Math.pow(3, 2); // 9 
console.log(3 ** 2); // 9

        指数操作符也有自己的指数赋值操作符**=

let squared = 3; 
squared **= 2; 
console.log(squared); // 9

2.4.6 加性操作符

        1. 加法操作符

        Infinity 加 -Infinity ,则返回 NaN
let num1 = 5; 
let num2 = 10; 
let message = "The sum of 5 and 10 is " + num1 + num2; 
console.log(message); // "The sum of 5 and 10 is 510"
let message = "The sum of 5 and 10 is " + (num1 + num2); 
console.log(message); // "The sum of 5 and 10 is 15"

        2. 减法操作符

        如果是 Infinity 减 Infinity ,则返回 NaN
        如果是-Infinity -Infinity ,则返回 NaN

2.4.7 关系操作符

        操作符包含>,<,>=,<=,用法不过多赘述。需要注意的是当不是数值的进行比较会先将其转化为数值,而字符串则会逐个比较字符串中对应字符的编码(并非根据首字母大小,而是根据字母本身的编码数值)

2.4.8 相等操作符

        1. 等于和不等于

  • 一般情况不作过多赘述。注意的是
  • null 和 undefined 相等
  • 至少有一个操作数是N即使两个操作数都是 NaN,相等操作符也返回 false
  • 如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回 true

        2. 全等和不全等(建议使用)

           全等和不全等操作符与相等和不相等操作符类似,只不过它们在比较相等时不转换操作数。

     同时null === undefined 是false,因为它们不是相同的数据类型。

        2.4.9 条件操作符

        即expression?A:B,此处不作过多解释

        2.4.10 赋值操作符

        类似于+=,>>=,<<=等,不做过多介绍

        2.4.11逗号操作符

        逗号操作符可以用来在一条语句中执行多个操作,如下所示:

let num1 = 1, num2 = 2, num3 = 3;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/14411.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode【0037】解数独

本文目录 1 中文题目2 求解方法&#xff1a;递归回溯法2.1 方法思路2.2 Python代码2.3 复杂度分析 3 题目总结 1 中文题目 编写一个程序&#xff0c;通过填充空格来解决数独问题。数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只…

零碎02-接口文档管理

目录 一、背景故事 二、解决方案分析 1. 静态文档方案 2. Swagger Springfox 3. Knife4j增强方案 三、示例 1. 添加依赖 2. 配置Knife4j 3. 创建knife4j配置类 4. 启动Spring Boot项目并访问接口文档 5. 使用示例 6. 测试和使用 四、总结 一、背景故事 酷乐是一名…

指标体系构建:如何设计北极星指标设计?

目录 1 北极星指标的作用 2 北极星指标设计标准 标准1 标准2 标准3 标准4 标准5 标准6 3 小结 1 北极星指标的作用 北极星指标是公司业务成功的关键指标&#xff0c;反映了公司为用户带来的价值&#xff0c;有以下3点作用&#xff1a; ● 像北极星一样&#xff0c…

三菱FX5UPLC以太网Socket通信功能Passive开放的程序示例

Passive开放的通信流程如下所示。 参数设置 示例程序中使用的参数设置如下所示。 [CPU模块】 导航窗口↔[参数]↔[模块型号]↔[模块参数]-[以太网端口]-[基本设置]-[对象设备连接配置设置]↔[详细设置]→[以太网配置(内置以太网端口)]画面 【以太网模块】 [导航]中「参数]→[模…

【MATLAB源码-第292期】基于matlab的4ASK调制解调窄带通信系统仿真,输出各节点波形图以及误码率曲线图。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 窄带通信系统是指带宽较小、频谱利用效率较低的通信系统。与宽带通信系统相比&#xff0c;窄带系统的特点是信号的带宽相对较窄&#xff0c;因此需要更精确的调制技术来实现有效的通信。在窄带通信中&#xff0c;常见的调制方…

【搜索结构】AVL树的学习与实现

目录 什么是AVL树 AVL树的定义 插入函数的实现 左单旋和右单旋 左右双旋与右左双旋 什么是AVL树 AVL树实际上就是二叉搜索树的一种变体&#xff0c;我们都知道二i叉搜索树可以将查找的时间复杂度提升到O(logn)&#xff0c;极大提升搜索效率。但是在极端情况下&#xff0c;当…

【专题】2024年中国消费者消费意愿调查报告汇总PDF洞察(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p38242 当今时代&#xff0c;经济社会多元发展&#xff0c;消费市场复杂多变。消费者的行为、需求和支出意愿不断演变&#xff0c;深刻影响着各个领域的发展。家庭余钱的用途反映出消费者在储蓄、教育、医疗等方面的考量。在消费领域…

推荐一款游戏玩家性能优化工具:Razer Cortex

Razer Cortex是一款专为游戏玩家设计的性能优化工具&#xff0c;它旨在提升玩家的游戏体验。通过该软件&#xff0c;用户可以优化 PC 性能&#xff0c;从而提高游戏的流畅度&#xff0c;减少延迟并增强视觉效果&#xff0c;尤其在需要精准操作的游戏中&#xff0c;流畅的画面和…

人工智能(AI)对于电商行业的变革和意义

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/402a907e12694df5a34f8f266385f3d2.png#pic_center> &#x1f393;作者简介&#xff1a;全栈领域优质创作者 &#x1f310;个人主页&#xff1a;百锦再新空间代码工作室 &#x1f4de;工作室&#xff1a;新空间代…

1435:【例题3】曲线 一本通 代替三分

1435&#xff1a;【例题3】曲线 题目来源&#xff1a;一本通oj链接 代替三分 题意 给出t组数据&#xff0c;每组里面有n个函数&#xff0c;求出t组数据的函数的最小值 思路 函数是二次函数&#xff0c;具有单峰性&#xff0c;利用左右两边单调性的原理可以进行答案三分处…

英伟达Isaac Manipulator产品体验

相关配置 Isaac Manipulator3.1.0Isaac Sim4.2.0Ubuntu20.04GPURTX 4090 LaptopCPUI9 13900HXMem64GB 过程记录与反馈 GPU加速效果 请描述您在使用Isaac Manipulator时&#xff0c;调用cuMotion加速库来进行机器人运动规划和轨迹优化等任务的步骤和过程&#xff0c;并记录任…

“非法”操控lambda(python)

能过python解释器关卡即是合法脚本代码&#xff0c;偶尔的“违规”操控也是一种唯美。 (笔记模板由python脚本于2024年11月13日 11:18:21创建&#xff0c;本篇笔记适合熟悉python的lambda操控的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.pyth…

[ 网络安全介绍 5 ] 为什么要学习网络安全?

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

java八股笔记-1-java基础

java 特点&#xff1a; 1.平台无关性&#xff0c;java 的字节码文件可以在任何安装了 JVM 的系统上运行 2.面相对象&#xff0c;几乎一切都可以抽象为对象&#xff0c;包括类&#xff0c;对象&#xff0c;继承&#xff0c;封装&#xff0c;多态&#xff0c;抽象 抽象&#xf…

Java入门16——接口

我们今天来学习接口&#xff0c;和继承有点像&#xff0c;话不多说&#xff0c;开始正题~ 一、接口 1.为什么要用接口 接口其实和继承很像&#xff0c;但是继承是 is-a 的关系&#xff0c;接口是 has-a 的关系&#xff0c;而且继承只能是一对一的关系&#xff0c;但是接口可以…

Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行串扰分析操作指导-trace耦合

Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行串扰分析操作指导-trace 耦合 Sigrity Power SI Power Ground Noise Simulation模式可以用来分析信号间的串扰,以下图为例 2D视图

地下水数值模拟软件Visual modflow Flex实践技术应用

专题一 地下水数值软件的操作流程、建模步骤和所需资料处理及相关注意事项 [1] Visual MODFLOW Flex特征 [2] Visual MODFLOW Flex软件界面及模块 [3] 地下水数值模拟的建模步骤及数据需求 专题二 模型建模操作方法 技巧、真实案例演练、特殊问题处理[1] 直接模型建模的操作方法…

保险、银行等金融行业都在做的“双录”是什么?电子签约如何实现

“双录”也就是同步录音、录像&#xff0c;是指在特定的业务场景中通过录音和录像的方式来记录相关业务过程中的关键环节和重要内容&#xff0c;帮助确定业务办理人真实身份和意愿、实现业务过程可回溯管理。 起初&#xff0c;双录主要用于保险销售&#xff0c;后来逐步扩展到…

总结拓展十五:特殊采购业务——寄售采购

1、寄售采购的定义 寄售采购是指供应商提供物料&#xff0c;并将它们存储在你处&#xff0c;在贵公司将这些物料从寄售库存提取&#xff08;转自有&#xff09;之前&#xff0c;该供应商一直是这些物料法律上的所有者。只有当这些物料被贵司转自有领用后&#xff0c;供应商才会…

python 同时控制多部手机

在这个智能时代,我们的手机早已成为生活和工作中不可或缺的工具。无论是管理多个社交媒体账号,还是处理多台设备上的事务,如何更高效地控制多个手机成为了每个人的痛点。 今天带来的这个的软件为你提供了一键控制多部手机的强大功能。无论是办公、娱乐,还是社交,你都能通过…