一、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>
三、