JavaScript的语言类型:

  • undeifined
  • boolean
  • string
  • number
  • null
  • symbol
  • object
记住:
0.1 + 0.2 != 0.3
复制代码
1.undefined
undeifined 是一个变量,而非是一个关键字。
而获取他的值,则可以通过void 0 来获得。void 0 == undefined
任何变量在赋值前都是undefined。而null是定义了但是为空的状态。
复制代码
2.null
null类型只有一个值,就是null,他的语义表示空值。
null不同于undefined,null是关键字,所以你可以放心用null关键字来获取null值。
复制代码
3.Boolean
Boolean类型会有两个值,true和false。
是用来判断逻辑意义上的真假。
复制代码
4.String
 string用于表示文本数据,string有最大长度:2^53-1.string的意义并非字符串,而是字符串的UTF16编码
复制代码
5.number
number是浮点数,console.log( 0.1+0.2 == 0.3); //false其实。浮点数运算的特点,精度问题复制代码
6.symbol
symbol 是ES6引入的新类型,是一切非字符串的对象key的集合。ES6中整个对象系统被Symbol重塑。创建:(使用全局的symbol函数)var mysymbol = Symbol("my symbol")Symbol.iterator---为每一个对象定义了默认的迭代器,该迭代器可以被for...of循环调用var o = new Object//给对象Object添加iterator属性
o[Symbol.iterator] = function() {var v = 0;return {next:function(){return {value: v++, done: v> 10}}}
}for(var v of o)  console.log(v)复制代码
7.对象
Object是最复杂的类型,也是js的核心机制之一。对象是属性的集合,属性分为:数据属性和访问器属性,都是KEY-VALUE形式。key可以是字符串或者symbol类型
复制代码

类型转换

StringToNumber

NumberToString

装箱转换是把基本类型转换成为对应的对象。例子:symbol对象是无法使用new来调用的,但是我们可以利用装箱机制来得到一个symbol对象。利用一个函数call来强迫产生装箱。var symbolObject = ( function () {return this;}).call(Symbol("a"))console.log(symbolObject instanceof Symbol); //trueconsole.log(typeof symbolObject) // object或者利用Object函数,在JavaScript代码中显式调用装箱能力var symbolObject = Object((Symbol('a'));console.log(Object.ptototype.toString.call(symbolObject)); // [Object Symbol]
复制代码
拆箱转换: ToPrimitive函数是对象类型到基本类型的转化。对象到String和Number的转换都遵循“先拆箱再转换”。先将对象转为基本类型,再从基本类型转化成String和NUmbervar o = {valueOf: () => { console.log("valueOf"); return {}}toString: () => { console.log("toString"); return {}}}o*2//1.先执行valueOf//2.toString//3.typeErroro + ""//1.先执行toString//2.tvalueOf//3.typeError显式toPrimitive Symbol 来覆盖原有的行为o[Symbol.toPrimitive] = () => {console.log("toPrimitive"); return "hello"}console,log(o + "")
复制代码

js字符串和数字之间的转换

1.转换函数

parseInt("10.5") // 10
parseInt("0xA") //10parseFloat("1234blue") // 1234
parseFloat("blue") //NaN复制代码

2.强制类型转换

Boolean(value) --- 把给定的值转换成Boolean型
Number(value) --- 把给定的值转化为数字(整数或者式浮点数)
String(value) -- 把给定的值转为字符串Boolean(100) // true
Number(false) //0
Number(true) //1
复制代码

3.利用JS变量弱类型转换

var string = 1 + '12' // 112 string
string = string - 0 // 112 number
复制代码

转载于:https://juejin.im/post/5c4d6ec0e51d45520d30173a

重学前端-js的类型问题相关推荐

  1. 重学前端第一阶段完 钢琴项目(document.querySelector js改变css样式的3种方式 思路 成品)

    菜鸟学完之后,总是感觉学了也还是不会,主要就是因为没有实践,不知道自己到底哪里有问题!虽然说我还没复习完,前端很大一部分都处于模糊阶段,但是感觉还是应该先尽力做一个简单的东西,把这几天学的都用进去,遇 ...

  2. 重学前端-学习笔记-JavaScript对象

    说明 重学前端是程劭非(winter)在极客时间开的一个专栏,在此主要整理我的学习笔记.如有侵权,请联系我,谢谢. javascript对象特征 对象具有唯一标识性:完全相同的两个对象,也不是同一个对 ...

  3. 重学前端学习笔记(八)--JavaScript中的原型和类

    笔记说明 重学前端是程劭非(winter)[前手机淘宝前端负责人]在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专 ...

  4. winter重学前端——训练营预习课

    重学前端读书笔记 javascript javascript 类型 javascript对象 面向对象与基于对象 模拟类 JavaScript 中的对象分类 javascript 执行 Promise ...

  5. 【笔记】重学前端-winter

    本文为:winter 发布在极客时间 [重学前端]系列课程的的笔记和总结 支持正版哦: https://time.geekbang.org/col... 导语 如果深入进去了解,你会发现,表面上看他们 ...

  6. 重学前端学习笔记(三十六)--Flex 布局

    笔记说明 重学前端是程劭非(winter)[前手机淘宝前端负责人]在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专 ...

  7. 判断字符串 正则_(重学前端 - JavaScript(模块一)) 14、引用类型之 RegExp (正则)(详述)...

    上一篇文章介绍了 JavaScript 中的 Date 类型,从地理方面的原理知识开始入手,如果大家认真看过上一篇文章,相信 JavaScript 中的 Date 类型已经难不住大家了!!! 但是今天 ...

  8. 重学前端学习笔记(二十二)--选择器的机制

    笔记说明 重学前端是程劭非(winter)[前手机淘宝前端负责人]在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专 ...

  9. 重学前端学习笔记(十三)--浏览器工作解析(三)

    笔记说明 重学前端是程劭非(winter)[前手机淘宝前端负责人]在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专 ...

最新文章

  1. Linux常用服务安装部署
  2. 【鸿蒙 HarmonyOS】UI 组件 ( 文本输入框 TextField 组件 )
  3. mysql 源代码16384_MySQL源码:Innobase文件系统管理
  4. java13 InputStream,Reader
  5. 微信浏览器禁止app下载链接的两种处理方法
  6. lxrun不是内部或外部命令_在Win10 安装 WSL的Linux子系统,解决cmd中执行lxrun时提示“不是内部或外部命令”...
  7. 已读服务器返回为空,钉钉考勤显示已读什么意思
  8. python os库
  9. 排队论是计算机科学新分支,(计算机科学的分支领域体系.doc
  10. [VB]使用ADO Recordset对象导入Excel
  11. IntelliJ IDEA 插件推荐
  12. 吉林警察学院计算机考研,吉林警察学院怎么样
  13. Java 创建pdf
  14. 黑马程序员 jQuery
  15. 阿里国际站运营的核心指标是什么?
  16. Unity个人开发中的踩坑记录(混沌式更新)
  17. adb命令设置输入法
  18. 配送中心的现代化物流技术
  19. 那些你不知道的3D视觉知识点,都在这里啦!
  20. 2022年P气瓶充装考试题模拟考试题库模拟考试平台操作

热门文章

  1. boost::math::quadrature::gauss用法的测试程序
  2. boost::hana::Comparable用法的测试程序
  3. boost::geometry::model::infinite_line用法的测试程序
  4. Boost:容器std::pair与宏BOOST_TEST_EQ相关的测试
  5. DCMTK:图像服务器中央测试节点(ctn)主程序
  6. VTK:可视化之ProgrammableGlyphFilter
  7. VTK:绘图之StackedPlot
  8. VTK:模型之Bottle
  9. VTK:图片之Transparency
  10. VTK:图片之RGBToHSI