循环
initialization:一个表达式(包含赋值语句)或变量声明 常被用于初始化一个计数器
condition:条件表达式(可选的),用于确定每一次循环是否能执行,如果没写就认为永远为真
final-expression:循环的最后要执行的表达式,在下一次条件condition之前,常用于更新计数器
continue跳过当前这一次循环继续下次循环
for ([initialization]; [condition]; [final-expression])
statement
// 打印0-100的数()只能有一句,不能写比较 {}不能出现i++ i--
var i = 100
for(;i--;){
console.log(i)
}
// 打印100以内的质数 质数仅仅能被1和自己整除的数 1不是质数
var c = 0;
for(var i = 1; i < 100; i++){
for(var j = 1; j <= i;j++){
if(i % j == 0){
c++;
}
}
if(c == 2){
console.log(i);
}
c = 0;
}
引用值
array object function date RegExp
typeof()方法
// number string boolean object(引用类型)
typeof (null);// 是object
null本身是一个指向空对象的指针即空对象的占位符
typeof (undefined);//返回undefined
typeof(function(){}) 返回 function
typeof(1 - 1); //number
typeof(1 - '1'); // number
typeof('1'- '1'); // number
typeof(‘1’ - ‘1’) 返回number
打印一个未定义的a 返回
然后再打印console.log(typeof(a)) ,typeof一个未定义的东西,得到的就是undefined
typeof(typeof(123)) 任何typeof的结果再typeof都会会返回string, 因为里面的typeof(123)得到的类型是一个字符串,所以会打印出string
显示类型转换/隐式类型转换(主要是三种 tostring tonumber toboolean)
显示类型转换:通过函数String()、Number()、Boolean()
Number()
string类型转number
“” " " " " 转成0
Number(“”) 0
Number(" “) 0
Number(” ") 0
Number(“1a”) typeof(Number(“1a”) )是NAN 就是说字符串中有非数字就是转成NAN
parseInt(要转换的数,radix),有2个参数,第二个参数表示转换数字想要的进制。进行转换时会取整。
parseInt(),从第一个数字依次往后转换,如果第一个就是非数字则结果是NaN
var a = '123';
console.log(Number(a)+ ' -'+ typeof(Number(a));//123-number
var a = 'true';
console.log(Number(a)+ ' -'+ typeof(Number(a));//NaN-number
var a = false;
console.log(Number(a)+ ' -'+ typeof(Number(a));//0-number
var a = null;
console.log(Number(a)+ ' -'+ typeof(Number(a));//0-number
var a = undefined;
console.log(Number(a)+ ' -'+ typeof(Number(a));//NaN-number
var a = '3.14';
console.log(Number(a)+ ' -'+ typeof(Number(a));//3.14-number
var a = 'a';
console.log(Number(a)+ ' -'+ typeof(Number(a));//NaN-number
var a = '123';
console.log(parseInt(a)+ ' -'+ typeof(parseInt(a));//123-number
var a = true;
console.log(parseInt(a)+ ' -'+ typeof(parseInt(a));//NaN-number
parseFloat() 只解析十进制,从左往右如果第一个就是非数字,则结果就是NAN
否则,从左往右,遇到小数点后第一个非数字,从这个字符开始就停止转换,前面的转换成功
toFixed()会四舍五入
var num = parseFloat('3.13644');// 3.13444
console.log(num.toFixed(2));//toFixed保留几位小数
任何基本类型String()都得到对应的字符串 toString(radix)可以填进制
String(null) null
String(undefined) undefined
String(123) ‘123’
String(true) ‘true’
undefined和null没有toString方法
转Boolean类型 除了 false null undefinef ‘’ 0 NaN 都转成true
隐式类型转换
var a = '123';
a++;
console.log(a);//124
var a = 'a' + 1;
console.log(a);//a1
var a = '3' * 1;// * / % string都先转成number
console.log(a);//3
var a = '1' > 2; //比较运算符都要经过隐式转换
console.log(a);//false
var a = 1 === '1'; //不会隐式转换
console.log(a);//false
NaN == NaN;//false
var a = '2' > 1 > 3;
console.log(a);//false
var a = undefined > 0;
console.log(a);//false
var a = undefined == 0;
console.log(a);//false
var a = null == 0;
console.log(a);//false
var a = undefined == null;
console.log(a);//true
var a = undefined === null;
console.log(a);//false
isNaN() 先经过Number()转换
console.log(isNaN(NaN));//true
console.log(isNaN(123));//false
console.log(isNaN('a'));//true
console.log(isNaN(null));//false