1.typeof和instanceof的区别
typeof是返回基本数值的类型,有undefined、函数、object、原始类型。
instanceof是判断一个变量是否是一个对象的实例,返回的是boolean值。
const a = 10; const obj = new Number(10); // 一般不建议这么做 const number = Number(10); // 转型函数,转换为基本类型的数值 console.log(typeof a); // "number" console.log(obj instanceof Object); // "object" console.log(typeof number); // "number"
2.Number类型的基本常用方法之toFixed()方法
对于这个方法,之前也用过,它会保留指定的小数位。但是现在写出来只是为了加深一下我之前不了解的一个细节。这个细节就是假如数值的小数位比指定的小数位数值还要大,那么在最接近指定小数位的值会进行舍入。这是我之前所不知道的!
const a = 10; console.log(a.toFixed(2)); // "10.00",这是正常情况,不够就用0代替 // 👇就是主题了 const b = 10.005; console.log(b.toFixed(2)); // "10.01",小数点的第三位进行了舍入的操作,所以不是10.00了
3.String的属性和操作方法
字符串都有length属性,所以可以计算字符串的长度,即使有的字符串是双字节字符,计算时也是当做一个字符。
const str = "hello"; console.log(str.length); // "5"
下面的两个方法的应用场景有限,但是也是很有用。它们就是charAt()和charCodeAt(),这两个方法都会接收一个参数,即基于0索引的字符位置。
// charAt()方法会返回索引位置的字符 const str = "hello"; console.log(str.charAt(1)); // "e",索引位置从0开始 // charCodeAt()方法会返回索引位置的字符编码 const str = "hello"; console.log(str.charCodeAt(1)); // "101",这是e的字符编码值
还有一种就是通过类似数组取元素的方式,取得指定位置的字符。因为字符串有length属性,就和arguments对象一样,所以都可以通过方括号([])加上数值取得指定元素。
const str = "world"; console.log(str[0]); // "w",这个写法很方便啊
4.字符串的操作方法之concat()、slice()、substr()、sunstring()方法
(1)首先对concat()方法进行说明,一般我们是在数组中使用它,进行连接数组。其实他也可以连接字符串,只不过我们平常使用"+"进行拼接,这样比用cancat()方便很多。这个方法可以接受任意多个参数,进行与字符串进行拼接。
const str = "a"; const newStr = str.concat("b", "c", "!"); console.log(newStr); // "abc!" console.log(str); // "a";
(2)就是对后面三个方法的了解,这里面有很多学问啊😆。它们都可以接受一个或者两个参数(splice方法后面再说),返回的都是截取的字符串。第一个参数都是截取字符串的开始位置(substring方法可能会变化),第二个参数指定的话就代表截取的结束位置。
const str = "nice!"; // 方法中传入一个参数时,没有第二个参数,默认截取到字符串的末尾 const s1 = str.slice(3); const s2 = str.substring(3); const s3 = str.substr(3); console.log(s1); // "e!" console.log(s2); // "e!" console.log(s3); // "e!" consoe.log(str); // "nice!" // 方法中传入两个参数时 const s4 = str.slice(2, 4); // 第二个参数代表结束的索引位置 const s5 = str.substring(2, 4); // 第二个参数代表结束的索引位置 const s6 = str.substr(2, 4); // 第二个参数代表截取字符串的长度,超过字符串的长度时,默认截取到字 符串末尾 console.log(s4); // "ce",[2,4),获取的是索引位置为2,3的值 console.log(s5); // "ce",[2,4),获取的是索引位置为2,3的值 cosole.log(s6); // "ce!" console.log(str); // "nice!" // 第一个参数为负数时,会从字符串的末尾开始截取,索引值从1开始,而不再是0 // ***对于参数为负数时,substring()方法会将负数转换为0,再进行截取字符串的操作*** const s7 = str.slice(-1); const s8 = str.substring(-1); const s9 = str.substr(-1); console.log(s7); // "!" console.log(s8); // "nice!",将负数转换为0,即开始位置为0 console.log(s9); // "!" // 第二个参数为负数时 // ***对于第二个参数为负数时,substring()方法会将负数转换为0,再进行截取字符串的操作*** // ***对于第二个参数为负数时,substr()方法会将负数转换为0,再进行截取字符串的操作*** const s10 = str.slice(1, -2); const s11 = str.substring(1, -2); const s12 = str.substr(1, -2); console.log(s10); // "ic", -2 + 5 = 3,即结束位置为3 console.log(s11); // "n",把负数转换为0, 再将两个参数进行比较,数值小的放前面,即[0, 1) console.log(s12); // "",这里取得是空字符串,把负数转换为0,即截取的长度为0,所以为空字符串 console.log(str); // "nice!"
以上对这些方法操作的结果都是保存在新的变量中,它们不会改变原始字符串的值!!!
Come on!!!
网友评论