js面试题笔记

一、JavaScript中如何检测一个变量是一个String类型?请写出函数实现

<script type="text/javascript">
let aa = 'hello';
typeof aa === 'string';  //true
typeof(aa) === 'string'; //true
aa instanceof String;  //false
aa.constructor === String;  //true
</script>

TIPS:
String 全局对象是一个用于字符串或一个字符序列的构造函数,而"string"是变量的一种类型
创建 String 对象的语法:
new String(s); //当 String() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 String 对象,存放的是字符串 s 或 s 的字符串表示。是引用类型
String(s); //当不用 new 运算符调用 String() 时,它只把 s 转换成原始的字符串,返回一个字符串,并返回转换后的值,是基本类型

<script>
var str = 'str',  //类型为string,基本类型,str只是一个以string为数据类型的值,但并不属于String对象的实例
                strb1 = new String(str),  //引用类型     strb1此时是String对象的一个实例
                strb2 = String(str);  ////类型为string,基本类型  
                typeof String;  //"function"
                typeof string;  //"undefined"
                typeof 'string';  //"string"
</script>

所以说,仅仅就一个string类型的数值和String而言,二者之间没有直接关系

二、获取浏览器URL中查询字符串中的参数

<script>
var url = 'http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23';
function getParams(){
    var href = window.location.href;
    var arg = href.split('?');
    if( arg[0] === href ){
        return ''
    }
    var paramObj = {};
    var paramArr = arg[1].split('&');
    for(var i=0;i<paramArr.length;i++){
        var arr = paramArr[i].split('=');
        paramObj[ arr[0] ] = arr[1];
    }
    return paramObj;

}
console.log( getParams()['name'] );  //xiaoming
</script>

三、

猜你喜欢

转载自blog.51cto.com/9161018/2331479