循环、typeof,类型转换、斐波那契数列

 循环


for(var i = 0 ; i<10; i++){
    console.log(i)
}

步骤:声明变量i = 0 ——> if(i<10){.... } ——> i++

另外的写法:

var i = 0
for(;i<10;){
    console.log(i)
    i++    
}

//不用break退出循环,只需要让条件不成立即可
var i = 1
for(;i;){
    console.log(i)
    i++
    if(i == 11){
        i = 0  //break
    }
}
打印0-100的数,()只能有一句,不能写比较 {}不能写i++ i--
var i = 100
for(;i--;){
    console.log(i)
}


10的N次方
var n = 5
var num = 1
for(var i = 0; i < n ; i++){
    num = num *10;
}

打印100以内的质数
var c = 0
for(var i = 2 ; i<100 ; i++){
    for(var j = 1 ; j<=i ; j++){
        if(i%j == 0){
            c++;
        }
    }
    if(c = 2){
        console.log(i)
    }
    c = 0
}


 typeof


typeof(1)  number
typeof('str')  string
typeof(true)   boolean
typeof({})     object
typeof([])     object
typeof(function(){})   function
typeof(null)   object
typeof(undefined)   undefined
typeof(NaN)    number
typeof(typeof(1)) //string   //typeof的返回值是string
typeof(1-'1')    //number
typeof('1'-'1')    //number
 
typeof(a)  //undefined ,别的地方如果未定义a是报错 


 类型转换


显式类型转换:

Number('123')  // 123
Number('true')  //NaN
Number(true)    //1
Number(null)    //0
Number(undefined)  //NaN
Number('a')     //NaN
Number('1a')   //NaN


parseInt('123')  //123
parseInt(true)   //NaN
parseInt(false)  //NaN
parseInt(null)   //NaN
parseInt(undefined)  //NaN
parseInt(NaN)    //NaN

parseInt(3.14)   //3
parseInt('3.99') //3  不保留小数点,不是四舍五入


parseInt('10',16)  //16   第二个参数是告诉函数,传进去的是什么进制的数字,
                          第二个参数的取值范围2-36,不在范围内的返回NaN
parseInt('a',16)   //10
parseInt('ab',16)   //171
parseInt('abz',16)   //171
parseInt('zab',16)   //NaN

parseInt('abc123')  //NaN
parseInt('123abc')  //123  
parseInt('123abc123')  //123 
 
parseFloat('3.14')  //3.14
parseFloat('3.14659').toFixed(2)  //3.15  toFixed四舍五入

String(123)  //'123'
123+''       //'123'
undefined.toString()   //报错,null也是报错

Boolean(1)  //true
Booolean(undefined)  //false,  null,NaN,'',0,false,undefined其他都是true





隐式类型转换:

var a = '123'  //Number(a)
a++;
console.log(a)  //124

var a = 'a'+1  //String(1) a:a1

var a = '3'*2  //Number('3')  a:6  

var a = '1'>2   //false

var a = 'a'>'b' //两个字符串对比比较ASCII码

var a = 1==='1'  //不进行类型转换,false

var a = Nan == NaN  //false,NaN不等于任何东西

var a = 2>1>3  //false  true>3
var a = 2>1==1  //true

var a = undefined >0  //false undefined和null,即不大于0,也不等于0,也不小于0

var undefined == null  //true 
 
var undefined === null  //false

var num = '123'
console.log(+num)   //数字123,  +-会转number

var num = 'abc'    //+num  -> NaN

isNaN(NaN)    //true
isNan(123)       //false
isNan('123')       //false
isNan('a')       //true
isNan(null)       //false
isNan(undefined)       //true   isNaN会先进行number转换


var a = false + 1;   //a:1

 斐波那契数列


也叫黄金分割数列,兔子数列

1,1,2,3,5,8,13....

用for循环算出第n位置
var n = window.prompt('请输入第几位')

var n1 = 1
var n2 = 2
var n3;
...处理n等于1,2,非法数值
for(var i = 2 ;i <n ;i++){
 n3 = n1+n2
 n1 = n2
 n2 = n3   
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值