JS数据类型-mdn
数据类型:
- 基本数据类型+引用数据类型
- Boolean
- 只有true、false两个值
- String
- String的意义不是‘字符串’,而是字符串的UTF16编码,国际标准中字符是以Unicode的方式表示的,UTF16和UTF8是Unicode的编码方式
- String的最大长度是什么?受到编码长度的影响
- 如何表示一个很长的数字?
Number
- 整数和小数都只有一个Numebr类型,Number类型的数字是按照双精度浮点数的规则来的
- 可能遇到浮点数运算的问题,所以不能直接对两个浮点数进行运算符 (浮点数精度问题)
Math.round(`${+number}e${precision}`) / Math.pow(10, precision); 一般的解决方法是,将数字升级为整数,乘以10的几次幂,为计算机能够精确识别的整数,再降级乘以10的几次幂
1.335.toFixed(2) // 1.33错的 ; Math.round(1.335e2) / Math.pow(10,2) //1.34对的
- 在JavaScript中,我们通过在数字后面加上字母
"e"
并指定零计数来缩短数字:https://javascript.info/number;"e"
将数字乘以1
给定的零计数。1e3 = 1 * 1000 ; 1.23e6 = 1.23 * 1000000
- Undefined
- undefined也是全局的变量,所以有的编程规范会使用void 0来替代undefined,因为很容易被改变。而且使用void 0进行运算编译的时间比undefined断,查看其他博文显示。
- undefined和null在JS中都表示无,这里追本溯源是因为,在java中null表示对象,但是创始人觉得null无法代表基本数据类型的无,所以创造了undefined
- undefined和null几乎一样,但是在转数字上undefined会转为NaN,null会转为0
- Null
- 只有一个值null
- Symbol
- Object
- Boolean
- 对象类型包括:
- Object
- Array
- Function
- String
- Boolean
- Number
- Date
- RegExp
- Error
- ...
区别:
- 3和new Number(3)的区别?
- 一个是Number类型,一个是对象类型
- JS内存空间:堆栈
- 栈内存: 存放基本数据类型,和引用数据类型的指针
- 堆内存:存放引用数据类型(对象)和闭包
- 池:存放常量
- 变量的复制
- 基本数据类型:直接在栈中重新开启空间给赋值的变量
- 引用数据类型,在栈中添加一个变量和指针指向堆中的对象;所以对属性的操作会影响原对象
问题?
1. - null和undefined:为什么JS中有两个表达‘无’的数据类型?
- 为什么有的编程规范要求用void 0 代替undefined?
null vs undefined
2. ES6新增加的Symbol是什么东西?
3. 字符串有最大长度吗?
- 因为JS是UTF16的编码方式, 所以字符串的长度受到编码长度的影响
4. 为什么给对象添加的方法能用在基础数据类型上?
- 运算符提供了装箱操作(把基本数据类型转为为对应的对象),它会根据基础类型构造一个临时对象,使我们能在基础类型上调用对应对象的方法。
考点:
- 为什么console.log(0.1+0.2 == 0.3) 输出false
- 因为JS类型为Number的数字是按照双精度浮点数的规则,浮点数的特点是不能使用==或===进行比较。这是浮点数的特点
- 所以错误不是false的结论而是比较的方法错了,可以使用ES6提供的最小精度值进行比较console.log(Math.abs(0.1+0.2-0.3) < Number.EPSILON)
- 深拷贝/浅拷贝
- 了解原理
- 数据类型的判断
- typeof
- 用于判断基本数据类型和function
- A instanceof B
- 用于判断对象的类型
- 判断构造函数B的prototype是否在实例对象A的原型链上。如果在则A是B的实例对象,返回true
- 但是不能判断数组;(因为Object的prototype间接的在原型链上)
- [] instanceof Array //true
[] instanceof Object //true
- Array.isArray() 判断数组
- Object.prototype.toString.call(x)
- 判断所有的数据类型
- ,返回的类型格式为[object,xxx],xxx是具体的数据类型
- Number/String/Boolean/Undefined/Null/Function/Array/Object/RegExp/Date/Error/HTMLDocument/Window
- 原因:每个类型都有toString方法,都对其进行了重写
- typeof
- 原型链(对象属性的查找)
- 每个对象都有与之相关联的对象,为了查找对象的属性
- 实例对象的__proto__ = 构造函数的prototype; 即实例对象的原型链
- 闭包 (函数对象)
JS数据类型-mdn相关推荐
- 前端基础(一):js数据类型
2019独角兽企业重金招聘Python工程师标准>>> 字数:1871 阅读时间:5分钟 引自MDN: 最新的 ECMAScript 标准定义了 7 种数据类型: 6 种原始类型: ...
- html js 添加数据类型,js数据类型判断和转换
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前言 无论笔试还是面试,总会问到数据类型和隐式转换.今天彻底整理一下这块的知识,希望对大家有帮助. 看到下面的题,是不是 ...
- 正确判断js数据类型 总结记录
正确判断js数据类型 总结记录 判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. 三方库. js六大数据类型 number: 数 ...
- 由一次代码优化想到的Js 数据类型
引子: 上周三进行了代码优化,其中有一个很普遍的代码,例如: if(test =="") {dothis();}else{dothat()} ----->可以简化为 !tes ...
- js数据类型 方法 函数
Js数据类型具体分析 1. 基础类型: string number boolean null undefined 2. 引用类型: object ==> jso ...
- JS数据类型 构造函数 原型链
js数据类型 基本数据类型:string undefined null boolean number 引用数据类型 Object array function 二者的区别 基本数据类 ...
- 基础一:JS数据类型
*本文章主要总结一下js数据类型的识别判断方法 tyoeof instanceof Object.prototype.toString.call constructor 最后封装一个函数,可以判别所有 ...
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...
- 前端基本功---JS数据类型知多少
在 JavaScript 编程中,我们经常会遇到边界数据类型判断,在大厂面试中,总是逃不过现场秀一段手写代码,此时往往需要考虑好代码的边界类型,让面试官看到你严谨的编程逻辑和深入思考的能力,面试才算加 ...
最新文章
- 前端大神用React刻了一个Windows XP
- OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core OpenCV学习笔记(五十七)——在同一窗口显示多幅图片 OpenCV学习笔记(五十八)——读《Mast
- 轻轻松松明白什么是反射,反射有什么用,简单上手反射以及反射的优缺点
- 初学总结--------Java修饰符与修饰关键字(且叫修饰关键字)
- 基于visual Studio2013解决C语言竞赛题之1010计算
- Drupal 忘记密码怎么办?重设管理员密码的几种方法
- 问题六十八:BRDF——(着色模型(shading model)(1)——反射模型(reflection model)(3.2))
- vs2012 设置默认的 include 目录
- 一起学Android之Storage
- linux下protobuf-c的安装
- Tomcat中的ResourceBundle国际化解析
- 测试额外任务而撒旦法 速度速度发撒旦法
- 计算机网路基础课后习题答案 主编刘建友
- 《超级演说家》刘媛媛:寒门贵子
- 开发智力的好东西~~~给孩子玩
- 目标检测 - 特征检测器比较
- go语言实现的一个基于go-zero框架的微服务网盘系统butane-netdisk
- (C70)第九夜:血色终结 Blood -over- 汉化补丁
- 解魔方机器人系列(一)kociemba算法
- c语言编写简易打飞机游戏