var i = 1;
for(;i;){
console.log(i);
i++;
if(i==11){
i=0;
}
}
循环时只去判断i等于true(1)时才循环为0是不循环的
var i=100;
for(;i--;){
consle.log(i);
}
n的阶乘
var n=5;
var num =1;
for(var i=1;i<=n;i++){
num*=i;
}
consle.log(num);
789颠倒
var num =789;
var a=num%10;
var b=(num-a)%100/10;
var c=(num-a-b*10)/100
打印三个数中最大的数:
var a=1;
var b=2;
var c=3;
if(a>b){
if(a>c){
console.log(a);
}else{
conlse.log(c);
}
}else{
if(b>c){
console.log(b);
}else{
console.log(c);
}
}
打印100以内的质数(仅仅能被1和自己整处的数)
var c=0;
for(var i=2;i<=100;i++){
for(var j=1;j<=i;j++){
if(j%i==0){
c++;
}
}
if(c==2){
console.log(i);
c=0;
}
}
黄金分割数列
1 1 2 3 5 8 13
/黄金分割数列
var a1= parseInt(window.prompt("请输入n位"));
var a=1,
b=1,
c=0;
if(a1<=2){
document.write(1);
}else{
for(var i=2;i
null |
undefind |
var a |
a |
typeof(typeof()) |
/+ |
转换方法 |
object(bug) |
undefind |
undefind |
undefind |
String |
SyntaxError |
转换后方法 |
document.write(typeof(- num)+ -num) number NaN
如果有+ -则为number
undefind
reference
null |
undefind |
var a |
a |
a' |
TRUE |
FALSE |
String() |
Date() |
FALSE |
TRUE |
TRUE |
ReferenceError |
TRUE |
FALSE |
FALSE |
false |
true |
所有isNaN()先判断括号内number()出来的值
Number()
null |
''|| ' '|| [] |
undefind |
var a |
a |
a' |
1A' |
TRUE |
false |
String() |
0 |
0 |
NaN |
NaN |
ReferenceError |
NaN |
NaN |
1 |
0 |
0 |
parseInt()
null |
undefind |
var a |
a |
a' |
1A' |
TRUE |
FALSE |
NaN |
NaN |
NaN |
ReferenceError |
NaN |
1 |
NaN |
NaN |
无进制 3.14 就为3, 3.94也为3
第二个参数写进制
parseInt(a,16)
十六进制:0123456789abcdef
解析:
16进制 10进制
16 = 10
17 = 11
... ....
? = 20
那么10=16 那20=16*2呗=32 那么?=32
往后同理
33 = 21
... = ....
?(16*4+3) 43
推导公式:
L=十六进制数 S=十进制数
L=parseInt(S/10)*16+S%10
S=parseInt(L/16)*10+L%16
L=十六进制数 S=十进制数 X=变量 x=变量
X=S%10;
x=L%16
L=(S-X)/10*16+X
S=(L-X)/16*10+x
parseFloat()
var num=parseFloat("3.1495")
document.write(num.toFixed(2))
有四舍五入
String()
输入的是什么转换出来的就是什么
.toString()这里也可以填进制
undefind 与null不行没有.tostring
数组只有callObject原型的toString才能得到[object Array]
Boolean()
除去undefined null NaN ''(中间没有字符 ) +0 -0 ducument.all() false外全是true
''中间有空格会为true
*0 /0会报错的
常见面试题如下
console.log(1+'true');//1true
console.log(1+true)//2
console.log(1+undefined);//NaN
console.log(1+null)//1
原理分析
常见面试题如下
console.log("2">10);//false
console.log("2">"10");//true
console.log("abc">"b");//false
console.log("abc">"aad")//true
console.log(NaN==NaN)//false
console.log(undefined==null);//true
原理分析
面试题
var a=???;
if(a==1&&a==2&&a==3){
console.log(1);
}//如何完善???使其打印1
原理分析
空数组的toString()方法会得到空字符串,而空对象的toString()方法会得到字符串`[object Object]` (注意第一个小写o,第二个大写O哟)
面试题
//大坑
console.log([]==0);//true
console.log(![]==0);//true
//神坑
console.log(![]==[])//true
console.log([]==[])//false
//陨石坑
console.log(!{}=={})//false
console.log({}=={})//false
原理分析
var a ='123'; a++; //Number(a)
var a='a'+1; //String(1)
var a='3'*2; // + - * / ->number
var a=1>'2' //number
var a= 'a'>'b' //ascii
var a= 1==='1' //不进行转换
0 == ''; //true
0 == ' '; //true
!!'' =false
!!' '=true
[] == false; // true
[] == ![]; // true
var a = 2>1>3
var a=2>1==1;
(拆解步骤:先比较2>1为true转换为1)
var a=undefined==0; false
var a=null==0; false
var a= null==undefind
var a= NaN==NaN false
较查询图: