06 JS数值类型与字符串类型的内置方法

483次阅读
没有评论

共计 3326 个字符,预计需要花费 9 分钟才能阅读完成。

一.Number 数值类型

JavaScript 中不区分整形和浮点型, 只有一种数字类型 : Number

var a = 3;
var b = 3.3;
var c = 2e2;  // 200
var n = NaN;  // number 类型, 表示的是 " 不是一个数字(NOT a number)"

使用 typeof 查看数据类型

typeof(a);  // "number"
typeof(b);  // "number"
typeof(c);  // "number"
typeof(d);  // "number"

四舍五入

var num = 3.1465926;
num.toFixed(2);  // 3.15  (保留两位小数, 并四舍五入)

二. String 字符串类型

1. 字符串常用操作

  • 定义
var str = '@#$%^&fe 海绵宝宝';  // 单引号, 双引号, 任意字符
var word = "hello";
typeof(str);   // "string"
typeof(word);  // "string"
  • 字符串嵌套的关系,不能穿插用
var name = '派大星 " 海绵宝宝 "';  // 单双引号必须匹配
alert(name);
  • 转意字符
var name = "I 'am \" 派大星 \"";  // 引号冲突可以进行转意
alert(name);
  • 字符串拼接
var one = '派大星';
var name = " 海绵宝宝 ";

var joined = one + '喜欢' + name;
alert(joined);  // " 派大星喜欢海绵宝宝 "

2. 字符串的字符方法

  • JavaScript 中方法与 Python 中字符方法比较
功能 js python
返回长度 .length len()
移除两边空白 .trim() .strip()
移除左边空白 .trimLeft() .lstrip()
移除右边空白 .trimRight() .rstrip()
返回第 n 个字符 .charAt(n) list[n]
拼接 .concat(value,…) .join(), +
子序列位置 .indexOf(substring, start) .index(), rindex(), .find(), .rfind()
根据索引获取子序列 .substring(start , end) list[start, end, step]
切片 .slice(start, end) list[start, end, step]
小写 .toLowerCase() .lower()
大写 .toupperCase(0 .upper()
分割 .split(delimiter, limit) .split(sep, maxsplit), rsplit(sep, maxsplit)
  • 移除两边空白 : .trim(js) 与 .strip(py) 的区别

python 中除了移除空白, 还可以指定要移除的字符, js 只能单纯的移除空白

  • 拼接 : .concat(value,…)(js) 与 .join()+(py) 的区别

python 中使用 +join() 实现字符串的拼接

使用 + 号的话数值不能直接和字符串进行拼接, join()中列表中元素必须是字符串类型(推荐用 join)

js 中使用 +, 或者.concat() 实现字符串的拼接, 当进行拼接时遇见数值类型会先换成字符串类型再进行拼接

  • 示例
 var str = 'hello world';  // 定义一个字符串

 console.log(str.length);  // 获取字符串的长度 : 11
 console.log(str.charAt(1));  // 用索引获取指定的字符 : "e"
 console.log(str.charCodeAt(1));  // 用索引获取指定字符对应的编码 : 101
 console.log(str.concat('派大星','海绵宝宝'));  // 拼接字符串, 一般不用, 一般使用 + 拼接

console.log(str.slice(2));   // 从索引 2 往后面取 : "llo world"
console.log(str.slice(2,4))  // 第一个参数是起始位置,第二个参数是结束位置,顾头不顾尾 : "ll"
 console.log(str.slice(-3,-1)); // 反向切片, 相当于 slice(8,10) : "rl"
 console.log(str.slice(8,10));  // "rl"

console.log(str.substring(2)); // 从索引 2 往后面取 : "llo world"
console.log(str.substring(2,4));// 第一个参数是起始位置,第二个参数是结束位置,顾头不顾尾 : "ll"

console.log(str.substr(2));    // 从索引 2 往后面取 : "llo world"
console.log(str.substr(2,4));  // 第二个参数是返回的字符数,4 个就是往后取 4 个字符 : "llo "(llo 后面有一个空格)

 console.log(str.indexOf('o'));  // 从前往后找第一个 "o", 索引为 : 4
 console.log(str.indexOf('o',6));// 从索引 6 开始找第一个 "o", 找到索引为 : 7

 console.log(str.lastIndexOf('o'))// 从后面往前面找的第一个 "o", 索引为 : 7
 console.log(str.lastIndexOf('o',6));// 从索引 6 开始往前找第一个 "o", 索引为 : 4

 var str2 = 'hello world';
 console.log(str2.trim());  // 清除当前字符串的前后空格 : "hello world"
 console.log(str2);  // "       hello world     "

 var str3 = 'AAAAA';   // 转小写
 console.log(str3.toLowerCase());  // "aaaaa"

 var str4 = 'aaaaaa';   // 转大写
 console.log(str4.toUpperCase());  // "AAAAAA"

三. 数值与字符串的相互转换

1. 字符串转数值

var str = '123.564864';  // 定义一个字符串
var str2 = "123asd"

console.log(parseInt(str)); // 将其转换成整形, 小数点后面不会转换, 后面是英文也不会转换 : 123
console.log(parseInt(str2));  // 123
console.log(parseFloat(str));  // 将其转化成浮点数, 可以有小数点 : 123.564864
console.log(typeof parseFloat(str));  // number
console.log(Number(str));  // 将当前字符串进行解析, 如果有字母会返回 NaN, 否则返回值 : 123.564864

var a = Number(str);
console.log(isNaN(a));  // 检验是否返回 NaN, 是则返回 true, 不是则返回 false : false

console.log(parseInt('123sdasdajs2312d'));  // 123
console.log(parseInt('asdasdad123sdad'));   // NaN
console.log(parseFloat('11.111faweff'));    // 11.111
console.log(parseFloat('awefe11.11'));      // NaN

2. 数值转字符串

var num = 1234

// 隐式转换, 数值与字符串拼接时,js 底层会将数值先转换成字符串
var a = num + "";
var b = num + "hello";
alert(typeof num);  // number
alert(typeof a);  // string
alert(typeof b);  // string
console.log(typeof("".concat(num));  // string

// toString( ) 强制类型转换
console.log(num.toString());  // "1234"
console.log(typeof num.toString());  // string
console.log(String(num));  // 1234
console.log(typeof String(num));  // string
正文完
 
shawn
版权声明:本站原创文章,由 shawn 2023-06-16发表,共计3326字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)