变量的数据类型:基本数据类型

基本数据类型有以下几种:

 String 字符串、Number 数值、BigInt 大型数值、Boolean 布尔值、Null 空值、Undefined 未定义、Symbol。

String 字符串

字符串型可以是引号中的任意文本,其语法为:双引号 "" 或者单引号 ''

示例如下:

​
var a = 'abcde';
var b = '周十七';
var c = '123123';
var d = '开心开心极了';
var e = ''; //空字符串


console.log(typeof a);
console.log(typeof b);
console.log(typeof c);
console.log(typeof d);
console.log(typeof e);

​

控制台输出如下:

引号的注意事项

1、单引号和双引号不能混用。比如下面这样写是不可以的:

var str = 'hello";  // 报错:Uncaught SyntaxError: Invalid or unexpected token

2、同类引号不能嵌套:双引号里不能再放双引号,单引号里不能再放单引号。

3、单引号里可以嵌套双引号;双引号里可以嵌套单引号。

转义字符

在字符串中我们可以使用\作为转义字符,当表示一些特殊符号时可以使用\进行转义。

  • \" 表示 " 双引号

  • \' 表示 ' 单引号

  • \\ 表示\

  • \r 表示回车

  • \n 表示换行。n 的意思是 newline。

  • \t 表示缩进。t 的意思是 tab。

  • \b 表示空格。b 的意思是 blank。

 举例:

var str1 = '我说:"今天\t天气真不错!"';
var str2 = '\\\\\\';

console.log(str1);
console.log(str2);

代码效果:

 

 获取字符串的长度

字符串是由若干个字符组成的,这些字符的数量就是字符串的长度。我们可以通过字符串的 length 属性可以获取整个字符串的长度。

代码举例:

​
var str1 = '周十七';
var str2 = '好好学习,天天向上!';

var str3 = 'zhoushiqi';
var str4 = 'zhoushiqi589';

console.log(str1.length); //3
console.log(str2.length); //10
console.log(str3.length); //9
console.log(str4.length); //12

​

由此可见,字符串的 length 属性,在判断字符串的长度时,会认为:

  • 一个中文算一个字符,一个英文算一个字符

  • 一个标点符号(包括中文标点、英文标点)算一个字符

  • 一个空格算一个字符

字符串拼接

多个字符串之间可以使用加号 + 进行拼接。

代码举例:

var str1 = '好好学习' + '天天向上';
var str2 = '周十七' + 589;
var str3 = '周十七' + true;
var str4 = '周十七' + null;
var str5 = '周十七' + undefined;

console.log(str1);
console.log(str2);
console.log(str3);
console.log(str4);
console.log(str5);

打印结果:

好好学习天天向上
周十七589
周十七true
周十七null
周十七undefined

模板字符串

在模板字符串中插入变量

var name = 'zhoushiqi';
var age = '21';

console.log('我是' + name + ',age:' + age); //传统写法
console.log(`我是${name},age:${age}`); //ES6 写法。注意语法格式

在模板字符串中插入表达式

const a = 5;
const b = 10;

// 下面这行代码,故意做了换行。
console.log(`this is ${a + b} and
not ${2 * a + b}.`);

 打印结果:

this is 15 and
not 20.

模板字符串中可以换行

代码举例:

const result = {
    name: 'zhoushiqi',
    age: 21,
    sex: '男',
};

// 模板字符串支持换行
const html = `<div>
	<span>${result.name}</span>
	<span>${result.age}</span>
	<span>${result.sex}</span>
</div>`;

console.log(html); // 打印结果也会换行

打印结果如下:

 布尔值:Boolean

布尔型有两个值:true 和 false。主要用来做逻辑判断: true 表示真,false 表示假。

布尔值直接使用就可以了,千万不要加引号。

代码:

var a = true;
console.log(typeof a);

控制台输出结果:

boolean

数值型:Number

在 JS 中所有的数值都是 Number 类型,包括整数和小数。

var a = 100; // 定义一个变量 a,并且赋值整数100
console.log(typeof a); // 输出变量 a 的类型

var b = 12.3; // 定义一个变量 b,并且赋值浮点数 12.3
console.log(typeof a);

上方代码的输出结果为:

number

number

NaN

NaN:是一个特殊的数字,表示 Not a Number,非数值。在进行数值运算时,如果得不到正常结果,就会返回 NaN。

比如:

console.log('abc' / 18); //结果是NaN

console.log('abc' * 'abcd'); //按理说,字符串相乘是没有结果的,但如果你非要让JS去算,它就一定会给你一个结果,结果是NaN。

连字符和加号的区别

键盘上的+可能是连字符,也可能是数字的加号。如下:

console.log("我" + "爱" + "你");	//连字符,把三个独立的汉字,连接在一起了
console.log("我+爱+你");			//原样输出
console.log(1+2+3);				//输出6

输出:

我爱你
我+爱+你
6

如果加号两边都是 Number 类型,此时是数字相加。否则,就是连字符(用来连接字符串)。

Null:空对象

 

ull 专门用来定义一个空对象。例如:let a = null,又例如 Object.create(null).

如果你想定义一个变量用来保存引用类型,但是还没想好放什么内容,这个时候,可以在初始化时将其设置为 null。你可以把 null 理解为:null 虽然是一个单独的数据类型,但null 相当于是一个 object,只不过地址为空(空指针)而已

比如:

let myObj = null;
cosole.log(typeof myObj); // 打印结果:object

undefined:未定义类型

1.声明了一个变量,但没有赋值,此时它的值就是 undefined。举例:

let name;
console.log(name); // 打印结果:undefined
console.log(typeof name); // 打印结果:undefined

2.如果你从未声明一个变量,就去使用它,则会报错(这个大家都知道);此时,如果用 typeof 检查这个变量时,会返回 undefined。举例:

console.log(typeof a); // undefined
console.log(a); // 打印结果:Uncaught ReferenceError: a is not defined

3.

如果一个函数没有返回值,那么,这个函数的返回值就是 undefined。

或者,也可以这样理解:在定义一个函数时,如果末尾没有 return 语句,那么,其实就是 return undefined

举例:

function foo() {}

console.log(foo()); // 打印结果:undefined

4.调用函数时,如果没有传参,那么,这个参数的值就是 undefined。

举例:

function foo(name) {
    console.log(name);
}

foo(); // 调用函数时,未传参。执行函数后的打印结果:undefined

其他

undefined 实际上是由 null 衍生出来的,所以null == undefined的结果为 true。

但是 null === undefined 的结果是 false。它们虽然相似,但还是有区别的,其中一个区别是,和数字运算时:

  • 10 + null 结果为 10。

  • 10 + undefined 结果为 NaN。

规律总结:

  • 任何值和 null 运算,null 可看做 0 运算。

  • 任何数据类型和 undefined 运算都是 NaN。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值