准备js面试容易被忽略的知识点总结(一)

本文总结了JavaScript中易被忽略的数据类型检测方法,包括typeof、constructor和instanceof的用法,并详细介绍了数据类型转换,包括Number、parseInt、parseFloat、String及toString等方法的应用,帮助准备JS面试者巩固基础知识。
摘要由CSDN通过智能技术生成

一、 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 + “”;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值