学习内容:数据类型,运算符
学习笔记:
数据类型:
数据类型指的就是字面量,在JS中一共有六种数据类型 : String 字符串,Number 数值, Boolean 布尔值,Null 空值,Undefined 未定义,Object 对象
其中前五个属于基本数据类型 ,而Objecr属于引用数据类型
在JS中字符串需要使用引号引起来
1、JavaScript 字符串
JavaScript 字符串是引号中的零个或多个字符。
引号可以是单引号或双引号
实例:
var str= "hello";
var str='hello';
可以在字符串中使用引号,只要不匹配围绕字符串的引号即可:
var str=" It's a bad day!";
如果一定要多次使用双引号,那么要在里面是单纯的双引号前加转义符号
由于字符串必须由引号包围,JavaScript 会误解这段字符串:
var str ="我说:"你好"!";
该字符串将被切为 "我说:"
避免此问题的解决方法是,使用 \ 转义字符。
反斜杠转义字符把特殊字符转换为字符串字符:
var str ="我说:\"你好\"!";
我们也可以在声明并且定义一个字符串类型后对其进行修改:
var str="hello";
str="你好";
2、Number
JavaScript 只有一种数值类型。
写数值时用不用小数点均可:
var x1=3;不带小数点
var x2=3.14;带小数点
JS中可以表示的数字的最大值:Number.MAX_VALUE
最大值为1.7976931348623157
如果使用Number表示的数字超过了最大值,则会返回一个Infinity(字面量)
Infinity表示正无穷e+308
可以使用一个运算符typof来检查一个变量的类型
var a=1;
document.write(typeof a);
使用typeof检查Infinity也会返回Number
如果将字符串与字符串相乘为得到一个NaN
NaN也是一个特殊的数字,表示Not A Number
使用typeof检查NaN也会返回Number
如果使用JS进行浮点数计算,可能会得到一个错误的结果
3.JavaScript 布尔值
布尔值只有两个值:true 或 false。
实例
var x = true; var y = false;
注意:bool值类型不要给右边的内容加引号
4.Undefined
在 JavaScript 中,没有值的变量,其值是 undefined。typeof 也返回 undefined
任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。
当声明一个变量,但并不给变量赋值时,它的值就是undefined
例:
var a;
值是 undefined,类型是 undefined
5.Null
在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。
不幸的是,在 JavaScript 中,null 的数据类型是对象(object)。
您可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。
您可以通过设置值为 null 清空对象:
实例
var a = null;
值是 null,但是类型仍然是对象;可以通过设置值为 undefined 清空对象。
运算符
1.算数运算符
运算符 | 描述 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取模(余数) |
++ | 递加 |
-- | 递减 |
加法运算实例:
var a=1;
var b=2;
var c =a+b;
其他运算符的运算与加法运算类似,就不一一写下来了。
字符串相加
实例
var str1 = "Bill"; var str2 = "Gates"; var str3 = str1 + " " + str2;
txt3 的结果将是:Bill Gates
字符串和数字的相加
相加两个数字,将返回和,但对一个数字和一个字符串相加将返回一个字符串:
字符串和数字相加,会先将数字转变成字符串形式再相加,做拼串操作
实例
x = 7 + 8; y = "7" + 8; z = "Hello" + 7;
x、y 和 z 的结果将是:
15 78 Hello7
2.逻辑运算符
运算符 | 描述 |
---|---|
&& | 逻辑与 |
|| | 逻辑或 |
! | 逻辑非 |
逻辑与:
同真则为真,其余都为假。
JS中的“与”的属于短路的与,如果第一个值为false,则不会再检查后面的值。
逻辑或:
只要有一个真就是真。同理,只要第一个值为true,则不会再检查后面的值。
逻辑非:
所谓非运算就是对一个布尔值进行取反操作,true变false,false变true。如果对一个值进行两次取反,它不会变化。如果对非布尔值进行运算,则会将其变成布尔值,再进行取反。可以利用这个特点将一个其他类型的值转化成布尔值类型。可以为任意一个数据类型进行两次取反,来将其转化成布尔值。
3. 赋值运算符
赋值运算符向 JavaScript 变量赋值。
运算符 | 例子 | 等同于 |
---|---|---|
= | x = y | x = y |
+= | x += y | x = x + y |
-= | x -= y | x = x - y |
*= | x *= y | x = x * y |
/= | x /= y | x = x / y |
%= | x %= y | x = x % y |
加法赋值运算符(+=)向变量添加一个值。
赋值
var x = 7;
x += 8;
5.比较运算符
运算符 | 描述 |
---|---|
== | 等于 |
=== | 等值等型 |
!= | 不相等 |
!== | 不等值或不等型 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
? | 三元运算符 |
当使用==来比较两个值时,如果两个值的类型不同,则会自动进行转换,将其转换成相同的类型,然后再比较
等值等型(===)用来判断两个值是否相等,但它不会自动做类型转换,如果两个值的类型不同你,那么将会直接返回false。
不相等(!=)用来判断两个值是否相等,如果不相等则返回true,否则返回false。不相等也会自动进行转换
不全等用来判断两个值是否全等,不全等和不相等类似,不同的是不全等不会进行类型的自动转换
?(三元运算符)又叫条件运算符
语法:
条件表达式?语句1:语句2
执行流程:
首先对表达式求值,如果该值为true,则执行语句1,如果为false,则执行语句2。