1、弱类型:var
强类型:int string
2、命名习惯
类型 |
前缀 |
例子 |
数组 |
a |
aArray |
布尔值 |
b |
bMale |
浮点 |
f |
fTax |
函数 |
fn |
fnSwap |
整型 |
i |
iAge |
对象 |
o |
oCar |
正则 |
re |
rePattern |
字符串 |
s |
sUniversity |
3、6.02e23=6.02*10²³; 6.02e-32=6.02*10-32 ; .333=0.333
4、字符串使用
var sStr="hello world" console.log(sStr.length); //11 字符长度 console.log(sStr.charAt(4)); //o 获取索引为3 位置为4的字符 console.log(sStr.substring(1)); //ello world截取1到最后的位置
console.log(sStr.substring(1,4));//ell 截取从1的位置截取到4,但不包括4。
console.log(sStr.slice(1,4)); //ell 从1到4但不包括4,支持负数 sStr.slice(-3,-1);//rl
console.log(sStr.substr(1,4)) //ello 从索引为1的位置截取4个长度
console.log(sStr.indexOf("r")) //8 r第一次出现的位置
console.log(sStr.indexOf('l'),4);//9 l从索引4开始数,第一次出现的位置
console.log(sStr.lastIndexOf("o"));//7 最后一次出现的索引
console.log(sStr.split(' ')); //["hello", "world"] 以空格为分隔符
console.log(sStr.toUpperCase()); //HELLO WORLD
console.log(sStr.toLowerCase()); //hello world
console.log(sStr.replace("e","*"));//h*llo world
console.log(sStr[0]); //h 字符串可以当做只读数组
console.log(sStr[sStr.length-1]); //d
var arr = Array(2);
arr[0]="john";
arr[1]="tom";
console.log(arr.join('-'));//john-tom
console.log(Number(true)); //1
console.log(Boolean(null));//false
5、表达式和运算符
in var o={x:1,y:2}; delete o.x; console.log('y' in o);//ture console.log('x' in o);//fasle
instanceof var d = new Date();
if(d instanceof Date){
console.log('1');
}else{
console.log('2');
}
6、语句
for; break; continue; return
var iSum = 0; for (var i = 1; i < 101; i++) { if( i==10){ // break;//跳出整个for循环体 // continue;//只有当i==5时不执行,其他继续 // return;//跳出整个方法体或者返回一个值 alert(addNum(5)); } iSum += i; } alert(iSum); } function addNum(i) { var j = i + 5; return j;
if...else; prompt; isNaN; Number;parseInt
猜数字游戏
var iNum= Math.floor(Math.random()*100+1);
for(var i=0;i<3;i++){
if(i==6){
alert('游戏结束中奖号码是'+iNum);
return;
}else{
var sInput = prompt("请输入1~100之间的整数"); var nInput = Number(sInput); if (isNaN(nInput)) { alert("请输入数字"); } else {
if(nInput == parseInt(nInput)){
if(nInput <1|| nInput>100){
alert("你输入的不在范围内");
}else{//输入在1~100之间
if(iInput>iNum){
alert('你输入的数字太大');
}else if(iInput<iNum){
alert("你输入的太小");
}else{
alert("恭喜你中奖了");
return;
}
}
}else{
你输入的不是整数
}
}
}
}
switch(nInput){ case 1: alert('1'); break; case 2: alert("2"); break; case 3: alert("3"); break; case 4: alert("4"); break; case 5: alert("5"); break; case 6: alert("6"); break; case 7: alert("7"); break; }
while
var i = 0; var iSum = 0; while(i<10){ iSum += i; // i++; //执行后再加 ++i; //执行前先自加 alert(i); } alert(iSum);
for in
var o = { x: 1, y: 2 } for(i in o){ console.log(o[i]); } // 1,2
异常处理 try catch finally
function click(){ try{//抛出异常 var n=Number(prompt("请输入一个正整数")); var f=factorial(n); alert(n+"!="+f); } atch(ex){//处理异常 alert(ex); } finally{ alert("不管是否有异常,都显示"); } } function factorial(x) { if (x < 0) { throw new Error("x不能为负数"); } if (isNaN(x)) { throw new Error("你输入的不是一个数字"); } for (var f = 1; x > 1; x--) { f *= x; } return f; }
7、JS堆栈和拷贝
http://www.cnblogs.com/chengguanhui/p/4737413.html
栈 传值 堆 传址
特点: 特点:
1、自动分配内存 1、动态分配内存
2、自动释放内存 2、大小不定不自动释放内存
3、存放基本类型(number string null Bleanoon array) 3、存放引用类型(对象、数组、函数)
4、可以直接调用 4、通过址来访问
var a = [1, 2,3, 4, 5]; var b = a; var c = a[1]; alert(b);//1,2,3,4,5 alert(c);//2 b[4] = 6; c = 7; alert(a[4]); //6 alert(a[0]); //1
8、 乘法表
var s = '<table>'; for (var i = 1; i <= 9; i++) { s += "<tr>"; for (var j = 1; j <= i; j++) { s += "<td>"+i +'*'+j+"="+i*j+"</td>"; } s +="</tr>" } s += "</table>"; document.write(s);
1*1=1 | ||||||||
2*1=2 | 2*2=4 | |||||||
3*1=3 | 3*2=6 | 3*3=9 | ||||||
4*1=4 | 4*2=8 | 4*3=12 | 4*4=16 | |||||
5*1=5 | 5*2=10 | 5*3=15 | 5*4=20 | 5*5=25 | ||||
6*1=6 | 6*2=12 | 6*3=18 | 6*4=24 | 6*5=30 | 6*6=36 | |||
7*1=7 | 7*2=14 | 7*3=21 | 7*4=28 | 7*5=35 | 7*6=42 | 7*7=49 | ||
8*1=8 | 8*2=16 | 8*3=24 | 8*4=32 | 8*5=40 | 8*6=48 | 8*7=56 | 8*8=64 | |
9*1=9 | 9*2=18 | 9*3=27 | 9*4=36 | 9*5=45 | 9*6=54 | 9*7=63 | 9*8=72 | 9*9=81 |
冒泡排序
var item =0; var iNum =[2,1,4,6,32,23,44,22,55]; for(var i=0;i<iNum.length-2;i++){ for(var j=i+1;j<iNum.length-1;j++){ if(iNum[i]>iNum[j]){ item =iNum[i]; iNum[i]=iNum[j]; iNum[j]=item; } } } console.log(iNum);//[1, 2, 4, 6, 22, 23, 32, 44, 55]
9、数组
var aArry = [2,3,5,7,4]; console.log(aArry.join('-'));//2-3-5-7-4 console.log(aArry.toString());//2,3,5,7,4 aArry.push(55,22); console.log(aArry);//[2, 3, 5, 7, 4, 55, 22] aArry.pop();//删除数组最后一个值,返回其他的 console.log(aArry);//[2, 3, 5, 7, 4, 55] var iSum=0; for(var i=0;i<aArry.length;i++){ iSum += aArry[i]; } console.log(iSum);//76 var aArry=[2,4,6,9]; var aa = aArry.filter(function(x,y){ return x<4; }); console.log(aa);//[2] var bb= aArry.map(Math.sqrt); console.log(bb);// [1.4142135623730951, 2, 2.449489742783178, 3]
Date类型
var d1=new Date(); console.log(d1.toLocaleDateString()+d1.toLocaleTimeString());//2018/1/15下午4:33:26 var myDate = new Date(); myDate.setMonth(4); console.log(myDate.toLocaleDateString());//2018/5/15 myDate.setMinutes(22); console.log(myDate.toLocaleTimeString());//下午5:22:04
location.href="#w3"; //跳转到对应的id; location.href="http://www.baidu.com"; location.href="demo1.html"; /* if(confirm('你确定删除吗?')){ alert('ok'); }else{ alert("no"); }*/ // console.log("控制台输出"); // alert("弹窗一个窗口"); // prompt("请输入一个1~100直接的整数")