循环
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
}