学习前端第二十六天(对象 —— 原始值转换、原始类型的方法、数字类型)

一、对象 —— 原始值转换

目的:对象是如何转换为原始值的,以及如何对其进行自定义

obj[Symbol.toPrimitive] = function(hint)

{ // 这里是将此对象转换为原始值的代码

// 它必须返回一个原始值

// hint = "string"、"number" 或 "default" 中的一个 }

二、原始类型的方法

原始类型中的方法可以直接用.xxxx调用,达到某种效果,如:

let str = "Hello";

alert( str.toUpperCase() ); // HELLO

  1. 字符串 str 是一个原始值。因此,在访问其属性时,会创建一个包含字符串字面值的特殊对象,并且具有可用的方法,例如 toUpperCase()
  2. 该方法运行并返回一个新的字符串(由 alert 显示)。
  3. 特殊对象被销毁,只留下原始值 str

null/undefined 没有任何方法

三、数字类型

1、编写数字的方法

1e6 = 1 * 10 的6次方

12e-5 = 12 * 10的-5次方

2、前缀 : 0x/0X 16进制 、 0o/0O 八进制 、 0b/0B 二进制

前缀加数字得到该数字十进制下的结果

0x10 = 16

0o10 = 8

3、toString

方法 num.toString(base) 返回在给定 base 进制数字系统中 num 的字符串表示形式。

num = 255;

num.toString(2); // 二进制下的‘255’ = 11111111

n.toString(8); // 八进制下的‘255’ = 377

n.toString(16); // 十六进制的‘255’ = ff

4、舍入

Math.floor

向下舍入:3.1 变成 3-1.1 变成 -2

Math.ceil

向上舍入:3.1 变成 4-1.1 变成 -1

Math.round

向最近的整数舍入:3.1 变成 33.6 变成 4,中间值 3.5 变成 4

5、将数字舍入到小数点后 n 位的方法

    1、乘除法        

     例如,要将数字舍入到小数点后两位,我们可以将数字乘以 100,调用舍入函数,然后再将其         除回。

  let num = 1.23456;

  alert( Math.round(num * 100) / 100 );

    2、函数 toFixed(n) 将数字舍入到小数点后 n 位,并以字符串形式返回结果。

      使用一元加号调用,将其转换为数字,例如 + num.toFixed(5)

6、不精确的计算

为什么0.1+0.2 === 0.3 返回 false?

因为:一个数字以其二进制的形式存储在内存中,一个 1 和 0 的序列。但是在十进制数字系统中看起来很简单的 0.10.2 这样的小数,实际上在二进制形式中是无限循环小数。

在二进制数字系统中,可以保证以 2 的整数次幂作为除数时能够正常工作,但 1/10 就变成了一个无限循环的二进制小数。

解决这个问题最可靠的方法是借助方法 toFixed(n) 对结果进行舍入

let sum = 0.1 + 0.2;

alert( sum.toFixed(2) );

乘/除法可以减少误差,但不能完全消除误差

7、isFinite和isNaN

isNaN(value) 将其参数转换为数字,然后测试它是否为 NaN

isFinite(value) 将其参数转换为数字,如果是常规数字而不是 NaN/Infinity/-Infinity,则返回 true,有时 isFinite 被用于验证字符串值是否为常规数字

8、parseInt和parseFloat

它们可以从字符串中“读取”数字,直到无法读取为止。如果发生 error,则返回收集到的数字。函数 parseInt 返回一个整数,而 parseFloat 返回一个浮点数。

alert( parseInt('100px') ); // 100

alert( parseFloat('12.5em') ); // 12.5

alert( parseInt('12.3') ); // 12,只有整数部分被返回了

alert( parseFloat('12.3.4') ); // 12.3

某些情况下,parseInt/parseFloat 会返回 NaN。当没有数字可读时会发生这种情况

9、一些数字类型方法

Math.random()

返回一个从 0 到 1 的随机数(不包括 1)。

Math.max(a, b, c...) 和 Math.min(a, b, c...)

从任意数量的参数中返回最大值和最小值。

Math.pow(n, power)

返回 n 的给定(power)次幂。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABC350A-F题解

ABC350 A-E题解 A题目AC Code(CPP):AC Code(Python): B题目AC Code(CPP):AC Code(Python): C题目AC Code(CPP)&#xff1a…

新加坡VPS服务器Linux系统的安全性如何增强

增强新加坡VPS服务器上Linux系统的安全性是至关重要的,以下是一些常见的方法和建议: 更新系统和软件: 定期更新操作系统和安装的软件包,确保系统中的所有组件都是最新版本,以修补已知的漏洞和安全问题。 配置防火墙&am…

109. Python的turtle库简介

109. Python的turtle库简介 【目录】 文章目录 109. Python的turtle库简介1. 什么是turtle库?2. 用turtle库绘制一个爱心图案3. 库的导入方法3.1 直接导入整个库3.2 从库中导入特定的函数或类3.3 导入库中的所有内容3.4 为导入的库设置别名3.5 为导入的函数或变量设…

阿里巴巴Java开发规范——编程规约(3)

# 阿里巴巴Java开发规范——编程规约(3) 编程规约 (四) OOP规约 1.【强制】构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中 这条编程规范的目的是为了保持代码的清晰性、可读性…

HTTP协议中的请求方法及其在前端的应用

简介: HTTP(Hypertext Transfer Protocol)是用于在网络上传输超文本的协议,定义了多种请求方法,用于指定客户端对服务器资源的操作方式。。 1. GET请求 GET请求用于从服务器获取资源,是最常见的请求方法之…

stm32开发三、单片机关键字extern

单片机关键字extern 1 定义 extern 用于指示变量或函数是在其他文件中定义的,但在当前文件中也要使用它。 2 使用场景 当你想在一个文件中使用另一个文件中定义的全局变量或函数时,你可以使用 extern。 它只是声明,不分配内存或分配存储空…

【C++提高】算法

算法 一、遍历算法1. for_each2. transform 二、查找算法1. find2. find_if3. adjacent_find4. binary_search5. count6. count_if 三、排序算法1. sort2. random_shuffle3. merge4. reverse 四、拷贝和替换算法1. copy2. replace3. replace_if4. swap 五、算术生成算法1. accu…

AOP

代理模式 提出问题 现有缺陷 假设我们有一个计算类,里面有加减乘除四个方法,现在我们要为这四个方法添加日志,即在方法执行的前后分别输出一句话,这时我们会发现如下缺陷: 1.对核心业务有干扰。核心业务是加减乘除…

货拉拉0-1数据指标体系构建与应用

目录 一、背景 二、指标体系搭建 2.1 指标设计 2.2 指标体系搭建 2.3 指标维度拆解 三、指标标准化建设 四、指标元数据管理 五、指标应用&未来规划 原文大佬介绍的这篇指标体系构建有借鉴意义,现摘抄下来用作沉淀学习。如有侵权请告知~ 一、背景 指标…

汽车摄像头匿名化处理解决方案,保护信息的安全性和隐私性

随着智能交通和自动驾驶技术的迅猛发展,汽车摄像头已成为现代汽车不可或缺的一部分,摄像头所捕捉的图像信息也引发了日益严峻的信息安全问题。如何在充分利用摄像头功能的同时,保障个人隐私和信息安全,已成为企业亟待解决的问题。…

IP地址定位技术引发的个人隐私保护问题

IP地址定位技术对互联网的影响深远且多面,它不仅改变了网络管理与优化的方式,还极大地推动了在线广告营销、电子商务、地理信息服务等多个领域的发展。然而,与此同时,它也引发了一系列关于个人隐私保护的问题。 首先,I…

vue的学习之用vue写一个hello,vue

根据以下步骤下载vue.js 介绍 — Vue.js 创建一个damo.html &#xff0c;引入vue.js即可 <body><div id"app">{{ message }}</div><!-- Vue --><!-- 开发环境版本&#xff0c;包含了有帮助的命令行警告 --><script src"js/vu…

清华新突破,360°REA重塑多智能体系统:全方位提升复杂任务表现

引言&#xff1a;多智能体系统的新篇章——360REA框架 在多智能体系统的研究领域&#xff0c;最新的进展揭示了一种全新的框架——360REA&#xff08;Reusable Experience Accumulation with 360 Assessment&#xff09;。这一框架的提出&#xff0c;不仅是对现有系统的一次重大…

Git提交/拉取的顺序

Git提交代码的流程 1、git add . 2、git commit -m “commit info” 3、git pull origin master 4、git push origin master 第一步表示将本地所有改动代码添加到暂存区 第二步表示将待提交内容和描述信息放到本次提交中 第三步表示将远程代码更新到本地&#xff08;用于解决冲…

P8739 [蓝桥杯 2020 国 C] 重复字符串

[蓝桥杯 2020 国 C] 重复字符串 题目描述 如果一个字符串 S S S 恰好可以由某个字符串重复 K K K 次得到&#xff0c;我们就称 S S S 是 K K K 次重复字符串。例如 abcabcabc 可以看作是 abc 重复 3 3 3 次得到&#xff0c;所以 abcabcabc 是 3 3 3 次重复字符串。 同…

nodejs 版本管理

nvm介绍 管理windows系统下nodejs的多个版本&#xff0c;包括安装、卸载、切换等功能。 安装nvm 在github官网下载nvm的安装包&#xff0c;下载完成之后安装即可。 nvm的基本用法 查看当前nodejs的版本 使用nvm list查看以安装的版本以及当前版本&#xff0c;前面带有*的…

如何修改WordPress数据库表前缀以提高安全性

WordPress作为世界上最受欢迎的内容管理系统之一&#xff0c;吸引了数以百万计的用户。然而&#xff0c;正因为其广泛的使用&#xff0c;WordPress网站也成为了黑客攻击的目标之一。其中一个最常见的安全漏洞是使用默认的数据库表前缀wp_&#xff0c;使得黑客能够更轻松地进行大…

Oracle交换分区测试

1、用exchange分区表减少初始化过程中对业务中断的影响 2、创建分区表 create table t_p (id number,name varchar2(30),addr varchar2(50)) partition by range(id) (partition p1 values less than(10), partition p2 values less than(20), partition p3 values less …

【Python快速上手(一)】

目录 Python快速上手&#xff08;一&#xff09;Python3 基础语法1. 编码2. 标识符3. Python 保留字4. 注释5. 行与缩进6. 多行语句7. import 与 from...import8. 命令行参数 Python快速上手&#xff08;一&#xff09; Python3 基础语法 1. 编码 Python 3 默认使用 UTF-8 编…

sql(ctfhub)

一.整数型注入 输入1 输入2 输入2-1&#xff0c;回显为1的结果&#xff0c;说明是数字型&#xff0c;只有数字型才可加减 判断字段数为2 查询数据库 查表 查列 显示flag内容 二.字符型注入 输入1 输入2 输入2-1&#xff0c;说明为字符型&#xff0c;不是数字型 判断闭合方式为…