学习JS的第二天
一、数据类型转换
数据类型转换分为强制数据类型转换和隐式数据类型转换.
强制数据转换:
主要通过 Number()、String()、Boolean()、等内置方法进行转换
Number() 把其他的数据类型可以转成数值类型
String() 把其他的数据类型可以转成字符串类型
Boolean() 把其他的数据类型可以转成布尔类型
例如:
var str1 = 'hello';
console.log('原来的值:'+str1);
console.log('原来的类型:'+typeof str1);
console.log('---------------------------');
var res = Number(str1);
console.log('现在的值:'+res); //NaN not a number(不是一个数字--非数字)
console.log('现在的类型:'+typeof res); //number
注意点:将其他类型转换为布尔型
1转成布尔类型是true 0转成布尔类型是false
NaN转成布尔类型是false
无穷大(无穷小)转成布尔类型是true
未定义类型转成布尔是false
空类型转成布尔是false
综上,0 NaN undefined null 为false
但 字符型0 转换 布尔为ture.
二、逻辑运算符
&& 与 || 或 ! 非
算数运算符 优先级高于 逻辑运算符 ,其中 !非的优先级要高于 &&与 和 ||或 ,与和或 是从左至右结合。
x&&y 的 运算规则: x为假,则返回x,若x为真,则返回y,无论y的真假。有假即假
x || y 的运算规则: x为真,则不再进行后面操作,返回x,若x为假,则返回y
! 为取反 !false = true
三、三大流程控制结构
1、顺序结构
按照程序的书写顺序,一条一条语句执行,不允许跳过任何一条语句
2、选择结构
在处理实际问题时,只有顺序结构是不够的,经常会遇到一些条件的判断,流程根据条件是否成立有不同的流向。程序根据给定的条件是否成立而选择执行S2操作或S3操作。这种先根据条件做出判断,再决定执行哪一种操作的结构称为分支结构,也称为选择结构
if语句 if(判断条件){ 执行代码 }
if(条件判断,结果只要两个true或false)
{
条件为true,将执行该代码
}
//说明:
//if是系统关键字,必须全是小写
//()小括号中,是条件判断语句,判断的结果只有可能true或false
//{}大括号中,是条件为true时,将执行的程序代码
if…else 结构
if(条件判断,结果只要两个true或false)
{
条件为true,将执行该代码
}else{
条件为false,执行该代码
}
if,else if … else
语法结构——多条件判断
if(条件1)
{
代码1
}else if(条件2)
{
代码2
}else if(条件3)
{
代码3
}else
{
如果以上条件都不成立,则执行该代码
}
//注意:虽然有多个条件,但各条件之间是"或"的关系。每时每刻,只能有一个条件成立,不能同时满足多个条件
switch
switch(条件判断)
{
case 值1:
代码1;
break;
case 值2:
代码2;
break;
case 值3:
代码3;
break;
default:
如果以上条件都不满足,则执行该代码
}
switch、case、break、default都是系统关键字,都必须全小写
switch后的小括号():小括号内一般是一个变量名,这个变量可能会有不同的值
注意点:
每个case中的代码执行完毕后,必须用break语句结束,结束之后,程序将跳到switch结束大括号后运行。
如果不写break语句的话,下面的所以的case语句都会执行一遍。
四、三目运算符(三元运算符)
判断条件 ? 代码1 : 代码2 ;
语法:
? : 也叫三目运算符
所谓"三元运算符"就是指三个操作数
语法:条件表达式?结果1:结果2
语法:操作数!?操作数2:操作数3
含义:如果条件为true,则执行"结果1"的代码;如果条件为false,则执行"结果2"的代码
其实:三元运算符,就是if else的变形形式