JavaScript学习笔记整理(二)

来源:互联网 发布:淘宝上便宜的零食店 编辑:程序博客网 时间:2024/05/22 16:42
编码,解码,网址在提交或者百度搜索的时候会将汉字进行编码,在发送.
同样的,也可以进行把编码返回成原始
var kword="郝晓宇";
var url="http://www.baidu.com/s?wd=";
//对非法字符编码为单字节
//不会修改元字符串
//必须用变量接住原返回值
kword=encodeURI(kword);//进行编码
console.log(kword);
console.log(url+kword);
kword=decodeURIComponent(kword) //进行解码,输出郝晓宇
console.log(kword);
console.log(url+kword);
运行示例:
%E9%83%9D%E6%99%93%E5%AE%87
index.html?__hbt=1511049507685:1138 http://www.baidu.com/s?wd=%E9%83%9D%E6%99%93%E5%AE%87
index.html?__hbt=1511049507685:1140 郝晓宇
index.html?__hbt=1511049507685:1141 http://www.baidu.com/s?wd=郝晓宇
可以执行字符串的代码:eval();
eval("alert('hello,ecal()')");  直接运行alert,神奇吧
1.请用户输入:单价,数量,收款金额保存在变量中
2.计算:应收金额=单价*数量  找零=收款金额-应收金额
3,输出:应收金额,找零,购买了几件商品 大于8元的时候,按照8折
var danjia=parseFloat(prompt("请输入书本的价格"));
var shuliang=parseFloat(prompt("数量"));
var shoukuan=parseFloat(prompt("收款金额"));
var jine=danjia*shuliang;
console.log("实际收款:"+shoukuan+"找零:"+zhaoling);
document.write("收金额:"+shoukuan.toFixed(2)+"找零:"+zhaoling.toFixed(2));  
//可以在网页正文中输出结果,toFixed(2)数字小数点保留两位
jine=jine>8?jine*0.8:jine;
var zhaoling=shoukuan-jine;
document.write("交易:"+jine.toFixed(2)+"找零:"+zhaoling);  
if-else条件判断语句
var fenshu=parseFloat(prompt("请输入考试分数"));
if(fenshu<60){
document.write("您考试的分数为:"+fenshu+"不及格");  
}else if(fenshu>90){
document.write("您考试的分数为:"+fenshu+"优秀");  
}else if(fenshu>80){
document.write("您考试的分数为:"+fenshu+"优异");  
}else if(fenshu>70){
document.write("您考试的分数为:"+fenshu+"一般");  
}else if(fenshu>=60){
document.write("您考试的分数为:"+fenshu+"及格");  
}
switch case  运行机制,如果找到匹配的代码,但是往后的代码也会继续执行!!!,但是每个语句后面添加上break就可以跳出循环
var fenshu=parseFloat(prompt("请输入考试分数"));
switch(fenshu){
case fenshu>90:
document.write("您考试的分数为:"+fenshu+"优秀");  break;
case fenshu>80:
document.write("您考试的分数为:"+fenshu+"优异");  break;
case fenshu>70:
document.write("您考试的分数为:"+fenshu+"良好");  break;
case fenshu>60:
document.write("您考试的分数为:"+fenshu+"加油");  break;
default:
document.write("您考试的分数为:"+fenshu+"不及格"); break; 
}
while是循环结构,可以一直执行,提示:数值无限大时候可以电脑卡死
var round=0;
while(round<9000){
console.log("车开了一圈");
if(round==1000){ //在while没有循环完可以终止循环,break
console.log("晕车");
break;
}
round+=1;
}
console.log("停车啦");
游戏:随机生成一个随机数,1-10,用户随机输入一个数字,进行比较,输出大了或者小了
Math.random是随机数函数,默认是0-1
随机数公式:(Math.random()*(max-min+1)+min) 必须记住
var input;
while(input!=n){
var n=parseInt(Math.random()*(10-0+1)); 
input=prompt("你猜:");
if(input!=""){
if(input=="exit"){
console.log("你放弃了");
break;
}else{
input=parseInt(input);
if(n>input){
alert("你输入的小了"+"我的随机数是:"+n);
}else if(n<input){
alert("你输入的大了"+"我的随机数是:"+n);
}else{
alert("猜对了");
}
}
}else{
alert("你什么也没有输入");
}
}
输入1,今天上班去打卡,输入2:今天上班开早会3,午饭时间到了4下班时间到了5下班回家
var tai=parseInt(prompt("输入状态数字"));
switch(tai){
case 1:alert("上班打卡");break;
case 2:alert("上班开会");break;
case 3:alert("上班吃饭");break;
case 4:alert("上班休息");break;
case 5:alert("上班回家");break;
}
var i=1000;
do{
console.log(i);
i++;
}while(i<10);  
1+-----100  
循环条件,加数《=100
循环变量:加数从1开始每次加1
循环体sum+=加数
var sum=0;
for(var i=1;i<=100;i++){
sum=sum+i;
}
alert(sum);
下面是牛逼的缩写,sum+=i++
for(var i=1,sum=0;i<=100;sum+=i++);
alert(sum);
死循环,死机程序
for( ; ; ){
console.log("我要读书");
}
1+3+5+-----+100
var sum=0;
for(var i=1;i<=100;i+=2){
sum=sum+i;

}
alert(sum);
//输出100; 
var i=1000;
while(1<10){
console.log(i);
i++;
}
输出五个2000年以后的闰年年份
var count=0;
var year=2000;
while(count<5){
if((year%4==0&&year%400!=0)||(year%400==0)){
console.log(year);
count++;
}year++;   --》或者是直接year+=4  直接+4
}
打印九九乘法表
for(var n=1;n<=9;n++){
var str="";
for(var i=1;i<=n;i++){
str+=i+"*"+n+"="+(i*n)+" ";
}
console.log(str);
}
var str="";
for(var i=1;i<10;i++){
str+=i+"*9="+i*9+" ";
}
console.log(str);
for(var n=1;n<=9;n++){
var str="";
for(var i=1;i<=n;i++){
str+=i+"*"+n+"="+i*n+" ";
}
console.log(str);
}
依次输入很多人的分数,当输入-1时弹出平均分
var i=0;
var count=0;
do{
var input=parseInt(prompt("输入成绩"));
if(input==-1){
break;
}else{
i+=input;
count++;
}
}while(true); //因为设置了if(if==-1,所以while可以写true)
console.log(i/count);
数组打印 :数组用[]表示,""放置元素,用,隔开
var a=["日","一","二","三","四"];
a=null;
document.write(a); 清空这个数组,让他无指向,主动释放对象
只要对象还在引用数组,数组是不会被清空的
var arr=new Array(8);
默认创建一个数组,有8个元素,如果输出的话会输出8个空格空字符
最后一个数组是元素的个数-1
var a=["1","2","3","4","5"];
b=["6","7","8","9","10"];
c=a;
a=null;
document.write(a+b+c);//输出null6,7,8,9,101,2,3,4,5
var a=["1","2","3","4","5"];
console.log(a[2]);//输出三,
要用属性,必须加属性点
js对象中不但封装了存储,而且封装了常用的API
Array API
1.arr.length属性:数组中的元素个数,length属性值随数组长度变化而变化
访问数组中的最后一个元素,arr[arr.length-1]   //arr.length中arr不能丢
js中的数组会根据程序运行自动扩容,和其他语言不一样的地方,不用担心越界出错的问题
数组的扩容或缩短  a.length=3  只能存储三个
被截断的元素,不能被找到,不会被回收,只能随数组对象一起回收
var a=["1","2","3","4","5"];
a.length=3;
console.log(a);
console.log(a[a.length-1]);//输出5,
console.log(a[5]);//输出undefind,无此元素
信息录入系统可以不停的接受录入人的员工姓名,直到输入exit为止,保存到一个数组中,然后直接输出
高级写法,必须会
var input;
var names=[];
while((input=prompt("请输入姓名"))!="exit"){
names[names.length]=input;
}
document.write(names);
数组字符串拼接+输出+遍历
var week=["日","一","二","三","四","五","六"];
for(var i=0;i<week.length;i++){
week[i]="星期"+week[i];
}
document.write(week);
var week=["一","二","三","四","五","六","七","八"];
for(var i=0;i<week.length;i++){
week[i]=week[i]+"月份";
}
document.write(week);
for in:专门遍历关联数组使用的,关联数组的length是失效的
for(var key in arr){
从第一个元素开始,将元素的Key赋值给临时变量key
arr[Key]->当前正字啊遍历的元素的值Value
}
使用关联数组遍历输出范冰冰的属性
var fbb=[];
fbb["姓名"]="范冰冰";
fbb["数学"]=90;
fbb["语文"]=80;
fbb["化学"]=85;
fbb["英语"]=70;
for(var key in fbb){
document.write(key+":"+fbb[key]+"<br>");
}
原创粉丝点击