1、数据类型转换
弱类型语言:由数据决定数据类型
var stuName = “张三丰”;//string
stuName = 35; //number
stuName = true;//boolean
函数:var 变量=typeof(变量);
1、隐式转换
不同数据类型之间的数据在计算过程中会自动进行转换
1、数字 + 字符串 :将数字转换为字符串,整体结果为字符串
2、数字 + 布尔类型:将布尔类型转换为数字,整体结果为 数字
3、字符串 + 布尔类型:将 布尔类型转换为 字符串,整体结果为 字符串
4、布尔类型+布尔类型:将 布尔类型转换为 数字,整体结果为 数字
注意:字符串和任意数据类型的数据相加运算时,结果都为字符串
2、转换函数
1、toString()
作用:将任意类型的数据转换为字符串类型
返回值:转换后的结果
语法:var 变量=变量.toString();
2、parseInt(参数)
作用:将任意类型的数据转换为 "整数"
参数:待转换的数据
返回值:转换后的结果(number类型)
特点:
1、碰到第一个非数字字符就停止转换
2、如果第一个字符就是非数字字符,转换结果为NaN(Not a Number)
isNaN(参数) : 判断 参数 是否为 非数字
返回值为 false,则为 数字
返回值为 true ,则为 非数字
3、parseFloat(参数)
作用:将 参数 转换为 小数(浮点数)
参数:待转换的数据
返回值:转换后的结果(number类型)
4、Number(参数)
作用:将一个 string 类型的参数 转换为 number
参数:待转换的数据
返回值:转换后的结果(number)
注意:如果包含非法字符,则返回 NaN
2、运算符 和 表达式
运算符:实现数据运算的一组符号
操作数:辅助运算符进行运算的数据
15 + 10
表达式:由运算符 和 操作数 组成的式子
var num = 15;
注意:每一个表达式都会有运算结果
1、算术运算符
1、作用
完成数据的 +-*/ 等基础运算
2、运算符
+,-,*,/,%,++,--
由算术运算符组成的表达式称之为算术表达式
+ :
两个数字的相加运算
字符串的连接运算
% : 取余操作,俗称 模
获取两个数字的 "余数"
5 % 2 结果:1
10 % 3 结果:1
3 % 10 结果:3
10.5 % 3 结果:1.5
-10 % 3 结果:-1
10 % -3 结果:1
-10 % -3 结果:-1
使用场合:
1、判断奇偶性 或 倍数的问题
2、获取 某数字的 最后几位
获取1234的最后一位
1234 % 10 结果 4
获取1234的最后两位
1234 % 100 结果 34
注意:
除 + 外,其他的运算符如果两边的操作数不是number类型的话,会自动使用Number()进行转换然后再做运算
任何数据在与NaN做运算时,结果一定是NaN
3、优先级
除 ++,--外
运算顺序:从左向右,先 */%,后+-
var result = 35+2*8+6%3*4;
想提升优先级 ,使用 ()
var result = (35+2)*(8+6)%3*4; 结果 8
var result = (35+2)*((8+6)%3)*4; 结果 296
4、++,--
++ :自增运算符,在自身的数值基础上做+1操作
-- :自减运算符,在自身的数值基础上做-1操作
var num = 10;
num++;
做后缀,先使用num的值,然后再进行自增操作
ex:
1、var num = 10;
var newNum = num++;
1、先将num的值赋值给newNum
2、再将num的值进行自增
2、var num = 10;
console.log(num++);
1、先 打印输出 num的值
2、在将num的值进行自增
++num;
做前缀,先将num的值进行自增,然后再使用num的值
ex:
1、var num = 10;
var newNum = ++num;
//newNum : 11
//num : 11
1、先将num进行自增操作,变为11
2、在将num的值(11)赋值给 newNum
2、var num=10;
num++;
console.log(num);
ex
1、var num = 10;
console.log(num--);??10
console.log(--num);??8
var newNum = num--;
console.log(newNum);??8
console.log(num);??7
2、var num = 2;
2 (3)3 3(4) (5)5 5 5(6)
var result = num + ++num + num++ + ++num + num + num++;
result : 23
num : 6
2、关系运算符
1、作用
比较数据之间的大小,相等关系的
由关系运算符所组成的表达式称之为"关系表达式"
关系表达式的结果都是 boolean 类型
2、关系运算符
>,<,>=,<=,==(判断等于),!=(不等于),===(全等),!==(不全等)
ex:
console.log(3 > 5); // false
console.log(5 >= 5);// true
console.log(3 == 5);// false
console.log(5 == 5);// true
console.log(5 != 3);// true
console.log("张三丰">"张无忌");
console.log("10">3);
console.log("10">"3");
注意:
1、运算符两边如果有一个是number类型的话,另一个非number类型的数字会通过Number()隐式转换为 number 在进行比较
2、如果运算符两边都是 string 类型的话,那么比较的就是每位字符的Unicode码,不相同的字符比较出大小,Unicode码的胜出
1、"张三丰">"张无忌"
张三丰
张:24352
三:19977
张无忌
张:24352
无:26080
2、"10">"3"
"10"
"3"
=== : 全等,既要判断数值,还要判断数据类型,数值和类型都相等的情况下,才为真,否则就为假
输入一个数字:25
是奇数吗?true
输入一个数字:50
是奇数吗?false
输入一个价格:6000
降价了吗?true
输入一个价格:9000
降价了吗?false
3、逻辑运算符
1、作用
关联多个条件
ex: 年龄必须在 18岁 到 65岁之间
var age = prompt("输入年龄:");
判断1:age > 18
判断2:age < 65
2、逻辑运算符
!:非(取反)
对现有条件的结果进行取反操作
非真即假
非假即真
&&:逻辑与
作用:关联两个条件
如果两个条件的值都为真的话,则整个逻辑结果就为真
如果两个条件中,有一个条件值为假,则整个逻辑结果就为假
var result = 条件1 && 条件2;
条件1:true,条件2:true,result:true
条件1:false,条件2:true,result:false
条件1:true,条件2:false,result:false
条件1:false,条件2:false,result:false
|| : 逻辑或
关联的两个条件中,只要有一个结果为真,那么整个的结果就为真
var result = 条件1 || 条件2;
条件1:true,条件2:true,result:true
条件1:false,条件2:true,result:true
条件1:true,条件2:false,result:true
条件1:false,条件2:false,result:false
优先级:
!>&&>||
比较运算符 > 逻辑运算符
5>3 && 1<2
练习2:
请输入一个字符:a (input)
是英文字符吗?true
是否在 a ~ z 或 A~Z之间
var r = input >= 'a' && input <= 'z'
如果r为真,说明是 小写字符
是数字吗?false
是汉字吗?false
3、短路逻辑
1、短路 与
条件1 && 条件2
如果条件1的结果为假的话,那么就"不会判断执行条件2",整个表达式的值,就为假
如果条件1的结果为真的话,那么则"继续判断执行条件2",并且以条件2的结果作为整个逻辑表达式的结果
2、短路 或
条件1 || 条件2
如果条件1的结果为真的话,那么久"不会判断执行条件2",整个表达式的值,就为真
如果条件1的结果为假的话,那么则"继续判断执行条件2",并且以条件2的结果作为整个逻辑表达式的结果