JS 作为弱类型的编程语言, 在声明变量时,统一使用 var、const、或者let关键字。但是每个变量都有一个隐式的数据类型。
数据类型检测
使用 typeof 关键字可以检测数据类型。
// 检测数字类型 console.log(typeof(3));
Number 数字类型
- 整形、浮点型在内的所有数字,都是数字类型。
typeof 5typeof 15.1
- 浮点数如果整数部分是0,可以省略。
.3typeof .3
- 数字可以使用科学计数法表示。
2e4 // 20000typeof 2e4;2e-4; //0.0002typeof 2e-4
NaN
NaN 代表运算结果不是一个数字。
- 特殊的数值型类型, 表示不是一个数字,但是此值的类型却是一个数值类型。
// 输出Numbertypeof NaN
- 在数学运算中,若数字类型的运算不能得到数字,其结果往往都是NaN。
// 输出 NaN1/Boolean
- NaN 不自等 ,即NaN不等于NaN。
// 输出 falseNaN == NaN
字符串类型
由引号包裹的(可以是单引号也可是双引号)若干个字符组成的集合就是字符串。字符串通常表示一段文字。
特性
加号可以拼接多个字符串。
var a = 'hello'; var b = ' workd'; console.log(a + b);
- 模板字符串,用反引号表示。可以嵌入变量,在运行时会被解析替换。
var a = 'halou';// 输出 heihe halou worldconsole.log(`heihe ${a} world`)
- 空字符串, 引号当中没有任何值。
console.log('');
- 字符串属性 length ,表示字符串的长度。
var a = 'woshi';console.log(a.length);
常用方法
charAt()
获取指定位置字符,传入字符串索引位置,找到对应字符;传入超过字符串长度的索引返回空字符串。
var a = 'hello';console.log(a.charAt(1));
substring(indexA, indexB)
提取子串, 如果 indexA > indexB , 则取子串 [indexA, indexB);
如果参数 indexB > indexA ,则取子串 [indedB, indexA) ;
如果省略第二个参数,表示截取到字符串结尾。
var str = 'halouworld'; // 输出 al console.log(str.substring(1, 3)); // 输出 al console.log(str.substring(3, 1)); // 从下标位置3开始截取到结尾 console.log(str.substring(3));
substr(index, length)
提取子串, 从第一个参数index索引位置开始, 长度为 length 的子串;
length 参数可以省略, 表示到字符串结尾;
index 可以为负数 ,表示倒数位置(字符串右边第一个值的下标为 -1 ,依次为 -1 , -2 ….)。
``` var str = 'wearehuman'; // 输出weare console.log(str.substr(0, 5)); // 输出 wearehuman console.log(str.substr(0)); // 输出 hum , index 虽然可以为负数, 但是还是字符串的左边向右崛起 console.log(str.substr(-5, 3));```
slice(indexA, indexB)
提取子串(切片), [indexA, indexB) ;
indexB 可以省略, 表示到字符串结尾;
indexA 参数也可以为负数, 类似 substr 函数;
参数indexA 必须小于 indexB。
var str = 'wearehuman'; // ea console.log(str.slice(1, 3)); // earehuman console.log(str.slice(1)); // a console.log(str.slice(-2, -1)); // 当 indexA 小于 indexB 时, 输出空字符 console.log(str.slice(2, 1));
toUppderCase
将字符串变为大写。
var str = 'wearehuman'; // 输出 WEAREHMMAN console.log(str.toLocaleUpperCase());
toLowerCase
将字符转成小写字母。
var str = 'weareHMman';// 输出 wearehuman console.log(str.toLowerCase());
常用函数总结
方法 | 功能 |
---|---|
charAt() | 获取指定位置字符,传入字符串索引位置,找到字符;传入超过字符串长度的索引返回空字符串。 |
substring(indexA,indexB) | 提取子串, 如果 indexA > indexB , 则取子串 [indexA, indexB);如果参数 indexB > indexA ,则取子串 [indedB, indexA) ;如果省略第二个参数,表示截取到字符串结尾。 |
substr(a,b) | 提取子串, 从第一个参数index索引位置开始, 长度为 length 子串;length 参数可以省略, 表示到字符串结尾;index 可以为负数 ,表示倒数位置(字符串右边第一个值的下标为 -1 ,依次为 -1 , -2 ….)。 |
slice(a, b) | 提取子串(切片), [indexA, indexB) ;indexB 可以省略, 表示到字符串结尾;indexA 参数也可以为负数, 类似 substr 函数;参数indexA 必须小于 indexB |
toUppderCase() | 将字符串变为大写 |
toLowerCase() | 将字符串变为小写 |
indexOf() | 检索字符串首次出现的位置,如果检索不到, 返回-1 |
布尔类型
布尔值只有两个 ,true(真)和false(假)
var bool = (10 > 20); // 输出 true console.log(bool); // 输出 boolean console.log(typeof bool);
undefined
主打一个未定义, 一个没有经过初始化的变量,默认值是 undefined 。默认值 undefined 指向的数据类型 也叫 undefined 。
var undi ; // 输出 undefined console.log(undi); // 输出 undefined console.log(typeof undi);
null
表示被置空的对象, 如果一个对象在经过运算后, 没有得到任何值, 那么就可以赋值为null。
不过 null 用 typeof 检测 得到 的却是 object 类型 。null 既是一种数据类型,但它的类型却是object 不知道在搞啥子
var emp = null ; // 输出 null console.log(emp); // 输出 类型object console.log(typeof emp);
总结
在js中还有很多复杂的类型, 例如 function, object , 这些预计会留到后面写。
以下是本文中涉及的数据类型。
数据类型 | 备注 | typeof 检测 | 举例 |
---|---|---|---|
number | 数字 | number | var a = 1 |
string | 字符串 | string | var b = ‘aaa’ |
boolean | 布尔 | boolean | var a = true |
undefined | 未定义 | undefined | var bool = undefined |
null | 被置空的对象 | null | var emp = null |
.zstitle { width: 280px; text-align: center; font-size: 26px } .zsimgweixin { width: 280px } .zsimgali { width: 280px; padding: 0px 0px 50px 0px } .zsleft { float: left } .zsdiv { display: flex } .zs { font-size: 30px } .zspaddingright { padding: 0px 100px 0px 0px } 请关于一下啦^_^
微信公众号