面试题--JS基础(一)

面试题–JS基础

1. JavaScript的typeof返回哪些数据类型

会返回5种数据类型和一种函数类型 number string boolean undefined object function

alert( type of 1 )  // number

alert( type of "zhangsan" )   // string

alert( typeof true )  // boolean

var a ;

alert( typeof a ) // undefined

alert( typeof [1,2] ) // object

alert( typeof {name:"zs"} ) // object

alert( null ) // object

function b () {}

alert( typeof b ) // function

数组、对象、null的typeof都返回object, 怎么区分呢?

可以通过 toString() 来获取每个对象的类型。为了每个对象都能通过 Object.prototype.toString() 来检测,需要以 Function.prototype.call() 或者 Function.prototype.apply() 的形式来调用,传递要检查的对象作为第一个参数,称为 thisArg

var toString = Object.prototype.toString;

toString.call(new Date); // [object Date]

toString.call(new String); // [object String]

toString.call(Math); // [object Math]

toString.call([1,2]); // [object Array]

toString.call(undefined); // [object Undefined]

toString.call(null); // [object Null]

2. 例举三种强制类型转换和2种隐式类型转换

  • 强制转换

    String(), Number(), Boolean()

    String(1) // 数字类型转换为字符串
    
    Number("21") // 字符串类型转换为数字
    
  • 隐式转换

    • 通过±*/等
    10+'20' //1020 string
    
    10-'20' //-10 number
    
    10-'one' //NaN not a number
    
    10-'101a' //NaN
    
    '10'*'20' //200 number
    
    20/'10' //2 number
    
    '20'/'10' //2 number
    
    '20'/'one' //NaN
    
    parseFloat('123.4a') // 123.4 number
    
    parseInt("123a") // 123 number
    
    • ==

      先比较类型,类型不同,转同类型后再比较数值

    undefined == null // true
    
    '0' == 0 // true
    
    0 == false // true
    
    '0' == false // true
    
    null == false // false
    
    undefined == false // false
    
    [] == false // true
    

3.split()、join() 的区别

  • split()是字符串转数组的方法

split()方法使用指定的分隔符字符串将一个String对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。

var str = 'The quick brown fox jumps over the lazy dog.';

var words = str.split(' ');
console.log(words[3]);
// expected output: "fox"

var chars = str.split('');
console.log(chars[8]);
// expected output: "k"

var strCopy = str.split();
console.log(strCopy);
// expected output: Array ["The quick brown fox jumps over the lazy dog."]

  • join()是数组转字符串的方法

join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。

var elements = ['Fire', 'Air', 'Water'];

console.log(elements.join());
// expected output: "Fire,Air,Water"

console.log(elements.join(''));
// expected output: "FireAirWater"

console.log(elements.join('-'));
// expected output: "Fire-Air-Water"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值