数据类型判断方式及优缺点
JS中一共有七种数据类型:
一种引用类型——Object,
六种基本数据类型——Number、String、Boolean、Null、Undifined、Symbol(ES6新增)
typeof(var):返回的是一个字符串,但是对于复杂数据类型来说,不管是数组Array、日期Date,或者是普通对象,这种方法返回的都是Object,无法更详细的区分。
(var) instranceof (type):但是这种方法在iframe下会产生bug,而且这种方法也无法准确判断Function和Object的类型,因为既可以说函数是个构造方法,也可以说方法是一个对象。
(var).Constructor (type):这种方法在类继承的时候同样有可能产生bug。
Object.prototype.toString.call(var) == ‘[Object (type)]’:完美。
String 各种常用操作
字符串分割
1.slice()、substr()、substring()
一、参数含义上的区别
从0,length-1
开始包含,结尾不包括
| 第一个参数 | 第二个参数(可选) | |
|---|---|---|
| slice() | 开始位置 | 需要返回的子字符串最后一个字符后面的位置 |
| substr() | 开始位置 | 需要返回的字符个数 |
| substring() | 开始位置 | 需要返回的子字符串最后一个字符后面的位置 |
var strValue = "javascript programing";
alert(strValue.slice(3)); //"ascript programing"
alert(strValue.substring(3)); //"ascript programing"
alert(strValue.substr(3)); //"ascript programing"
alert(strValue.slice(3,13)); //"ascript pr"
alert(strValue.substring(3,13)); //"ascript pr"
alert(strValue.substr(3,13)); //"ascript progr"
二、处理负值参数时的区别。
参数的含义不变,只不过参数为负值时,3个子字符串函数会对负值参数进行不同的处理。
| 第一个参数 | 第二个参数(可选) | 备注 | |
|---|---|---|---|
| slice() | 将负值与字符串的长度相加 | 将负值与字符串的长度相加 | |
| substr() | 将负值与字符串的长度相加 | 将负值变为0 | |
| substring() | 将负值变为0 | 将负值变为0 | 负值处理后,该函数会将较小的数作为开始位置,较大的数作为结束位置 |
var strValue = "javascript programing";//strValue.length()=21
alert(strValue.slice(-3)); => alert(strValue.slice(18)); //"ing"
alert(strValue.substring(-3)); => alert(strValue.substring(0)); //"javascript programing"
alert(strValue.substr(-3)); => alert(strValue.substr(18)); //"ing"
alert(strValue.slice(3,-13)); => alert(strValue.slice(3,8)); //"ascri"
alert(strValue.substring(3,-13)); => alert(strValue.substring(0,3)); //"jav"
alert(strValue.substr(3,-13)); => alert(strValue.substr(3,0)); //""
参考:https://www.cnblogs.com/kongxianghai/archive/2013/03/08/2950149.html
本文深入探讨了JavaScript中的数据类型判断方法及其优缺点,并详细介绍了字符串的各种常用操作,包括字符串分割技巧。通过对比typeof、instanceof等方法,读者可以了解如何精确判断变量的数据类型。此外,文章还解析了slice()、substr()、substring()三个函数在字符串处理上的细微差别,帮助开发者更高效地进行字符串操作。
8549

被折叠的 条评论
为什么被折叠?



