数据类型
基本数据类型
引用数据类型
数据类型转换
其他类型 —》数值类型
string boolean null undefined --->number
#1: 转换为数值类型的方法 number()
Number( '34.567' )
Number('234')
234
Number('23.456')
23.456
Number(true)
1
Number(false)
0
Number(undefined)--->NaN
NaN # not a number
isNaN() is not a number 判断这个值是否是数值 如果是数值得话返回false 不是的话返回true
Number(null)
0
Number('1234def') ---> 结果:NaN 只要不是数字 都不能进行转换
# 2: parseInt() ---》其他类型(字符串。浮点)转整数
parseInt(23.456)
23
parseInt('123')
123
# parseInt('1234def')
1234
parseInt('1234def1324')
1234
parseInt('a1234def1324')
NaN
# 3:parseFloat() ===>转浮点
parseFloat(34)
34
parseFloat(34.890)
34.89
parseFloat('324.89')
324.89
# parsetInt parserFloat 尽自己所能 Number() 局限
其他类型转布尔类型
哪些值可以转换为0值?
怎么转换 Boolean( )
Boolean('wqfwe')
true
Boolean(-400000)
true
Boolean(0)
false
Boolean(null)
false
Boolean(undefined)
false
Boolean('')
false
Boolean(false)
false
Boolean("false")
true
其他类型转字符串
对象.toString()
String()
a.toString()
"10"
true
true
true.toString()
"true"
String(null)
"null"
String(undefined)
"undefined"
# 调用toString()不能转换null,undefined 但是String()可以
二:运算符
#1 :算术运算符:(二元)
+ - * / % (* / % + -)
5%4 == 1
-1%4 == -1
1 % (-4) == 1
-7%12 = -7
# 2: 逻辑运算符
&& || ! 表达式1 || 表达式2
var a = 10;
a > 10 && a = 20 表达式1已结为false 所以表达式2 不进行
console.log(a) //10
!0 = 1 !1 = 0 取反
#3:关系运算符
== != >= <= > < === 全等 !== 全不等
i+=1 ===> i= i+1
== 只是值相同即可 ,可以类型不相同 10 == '10' true
=== 值和类型均相同 10 === '10' false
# 4:赋值运算符+= -= %= /= *= = 等于 右结合性
# 5:
自加 i++ ++i
自减 i-- --i
三大结构
顺序结构:
输入语句 输出语句 赋值
选择结构:
if switch
if 全面
if(判断条件){ # ( 条件---》任意表达式) true 执行{}里代码 false 不执行{}里代码
满足条件执行的判断语句
}
# 单分支:
if(今天下雨){
我就拿伞;
}
#if else 双分支
if(今天下雨){
我就拿伞;
}else {
我就不拿伞;
}
# 多分支 if-elseif-else
switch 清晰 处理流程清晰的选择
switch(条件){ # 条件最终结果只能整型或字符串 === 全等
case 表达式1:
代码;
break;
case 表达式2:
代码;
break;
case 表达式3:
代码;
break;
default: ===>else 处理所有剩余情况
代码;
}
# case 和default可以任意位置 并且default可有可无
var a = prompt('请输入')//5--10
switch(a){
case 5:
console.log('a的值是5')
break;
......
case 10:
console.log('a的值是10')
break;
}
循环结构:
for while do-while
三要素:1:初始值
2:循环控制条件
3:步长增量
# for
for(赋初值;控制条件;步长){
循环体;
}
var sum = 0;
for(var i = 0(表达式1);i<=100(表达2);i++(表达式3)){
sum += i;(表达4)
}
执行顺序 # 1--》2--》4---》3--》2---》4---》3---》2.....直到表达式2为false则跳出循环
#2
var i =0,sum=0;
while(i<=100){
sum+=i;
i++;
}
# 区别 for 和 while
for用在哪 循环次数明确的情况(顺序查找)
while可以用在循环次数不明确的情况(二分查找 顺序查找)
# do--while
赋初值
do{
循环代码;
增量;
}while(控制条件);
while()循环先判断后执行
do-while()先执行后判断
var num = prompt('输入yes/no')
while(num==='no'){
游戏的代码
}
do {
游戏的代码
}while(您要继续还是退出?yes/no);
作业:
1:循环实现斐波那契(不要递归)
2:n的k次幂 5^3
3:猴子吃桃 (猴子每天吃比前一天的一半还多一个桃子 ,第10天只剩一个,问你第一天有几个桃子)