准备js面试容易被忽略的知识点总结(一)
来源:互联网 发布:剑网三炮哥新手数据 编辑:程序博客网 时间:2024/05/21 10:54
一、 js中的数据类型的检测
1、使用typeof来判断数据类型
typeof 运算符把类型信息当作字符串返回,一般会返回下面几种类型
undefined string boolean number object -------对象或者null返回的是object function symbol
2、使用constructor 属性来判断数据类型
如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 Object。constructor 属性返回所有 JavaScript 变量的构造函数。
"John".constructor // 返回函数 String() { [native code] }(3.14).constructor // 返回函数 Number() { [native code] }false.constructor // 返回函数 Boolean() { [native code] }[1,2,3,4].constructor // 返回函数 Array() { [native code] }{name:'John', age:34}.constructor // 返回函数 Object() { [native code] }new Date().constructor // 返回函数 Date() { [native code] }function () {}.constructor // 返回函数 Function(){ [native code] }
举个例子:
<p id="demo"></p><script>var fruits = ["Banana", "Orange", "Apple", "Mango"];document.getElementById("demo").innerHTML = isArray(fruits);function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1;}</script>
3、使用instaceof 属性来判断数据类型
正因为typeof遇到null,数组,对象时都会返回object类型,所以当我们要判断一个对象是否是数组时或者判断某个变量是否是某个对象的实例则要选择使用另一个关键语法instanceof, instanceof只能用来判断对象和函数,不能用来判断字符串和数字等,返回布尔值。
var a=new Array();alert(a instanceof Array);//会返回true,
一、 js中的数据类型转换
1、显式数据类型转换(数据类型)
- Number转换:
var a = “123”;a = Number(a);
a) 如果转换的内容本身就是一个数值类型的字符串,那么将来在转换的时候会返回自己。
b) 如果转换的内容本身不是一个数值类型的字符串,那么在转换的时候结果是NaN.
c) 如果要转换的内容是空的字符串,那以转换的结果是0.
d) 如果是其它的字符,那么将来在转换的时候结果是
- parseInt()
var a = “123”; a = parseInt(a);
a) 忽略字符串前面的空格,直至找到第一个非空字符,还会将数字后面的非数字的字符串去掉。
b) 如果第一个字符不是数字符号或者负号,返回NaN
c) 会将小数取整。(向下取整)
- parseFloat();//浮点数(小数)
与parseInt一样,唯一区别是parseFloat可以保留小数。
2、显式数据类型转换(字符串类型)
- String():
var a = 123; a = String(a);
- toString()的方法来进行转换(包装类)
var a = 123; a = a.toString(); undefined,null不能用toString。
3、隐式类型转化
- 转number
var a = “123”;a = +a;加减乘除以及最余都可以让字符串隐式转换成number.
- 转boolean
var a = 123;a = !!a;
- 转string
var a = 123;a = a + “”;
阅读全文
0 0
- 准备js面试容易被忽略的知识点总结(一)
- JS容易被忽略的小知识点
- js容易被忽略的内容(一)
- Python编程中容易被忽略的小知识点(一)(基础知识部分)
- 容易考的知识点总结(一)
- php容易被忽略的知识点
- Java常容易忽略的知识点面试点
- Java 容易忽略的知识点
- JS中容易被忽略的基础知识
- html、css容易被忽略的小知识点
- 容易忽略的Java知识点(整理ing)
- C中容易忽略的知识点
- C++基础知识容易忽略的知识点
- java容易忽略的小知识点
- Java容易忽略的几个知识点!!!
- Java编程之容易忽略的知识点
- J2SE试题笔记一 总结了一些容易被忽略的地方
- js中容易被忽略的数字类型--Infinity
- 两种排序方法(字典序,strcmp的用法)----网易2017内推笔试编程题合集(二)
- 关于Intellij阅读源码的一些技巧
- redis缓存
- 北京信息学培训第五天
- 在Ubuntu/Linux环境下使用MySQL:连接MySQL服务,或退出MySQL服务
- 准备js面试容易被忽略的知识点总结(一)
- 229. Majority Element II
- Oracle中rownum和rowid
- POJ-3047
- 成员内部类
- OpenCL
- windows系统下发布python模块到pypi
- nginx和redis在linux上的安装配置小结
- java程序在Eclipse打包成jar程序并在机器中用bat运行