switch
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
JS中的switch结构满足java中的switch语法
swtich(表达式){
case 常量(整数,字符串):
语句1
break;
case 常量(整数,字符串):
语句1
break;
default:
不满足以上条件就执行默认语句
break;
}
js中的switch结构和java不同的地方是: 支持在case后面接上一个表达式,语法:
switch(true){
case 表达式1:
语句1
break;
case 表达式2:
语句2
break;
...
}
以上语法相当于多重if判断结构 if..elseif...elseif...else
-->
<script>
var score =prompt("输入一个分数", 60);
switch(true) {
case score >= 90:
console.log('优秀');
break;
case score >= 70 && score < 90:
console.log('良好');
break;
case score < 70:
console.log('不及格');
break;
}
</script>
</body>
</html>
字符串
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--js中创建字符串的2种方式
1.用字面量创建,即'xxx'或"xxx"
2.用new String('xxx')创建
常用属性:length:获取字符串的长度
-->
<script>
var s1='hello';
var s2=new String("world");
console.log(s1+s2);
console.log("长度:"+s2.length);
var c=s1+s2;
c=c.charAt(5);
console.log(c);
var m="welcome to WuHan";
//subStr字符串截取:参数1是从哪里开始截取,参数2是截取的长度
var str= m.substr(2,7);
console.log("截取的结果:"+str);
//slice截取:参数1是从哪里开始截取,参数2是截取的结束位置(不包含结束位置)
var str2=m.slice(2,7);
console.log("截取的结果:"+str2);
//toLocaleUpperCase:将字符串全转换为大写字母
str= m.toLocaleUpperCase();
console.log(str);
//toLocaleLowerCase:将字符串全转换为小写字母
str=m.toLocaleLowerCase();
console.log(str);
var n="I love you";
//split:将字符串转换为数组
var arr1= n.split(' ');
console.log(arr1);
//字符串编码encodeURIComponent():会对网址路径中的中文字符及:,/进行编码,都转换为数字字母%的形式
var url="http://www.baidu.com?username=张三";
console.log('编码前:'+url);
url=encodeURIComponent(url);
console.log('编码后:'+url);
//字符串解码decodeURIComponent():对已编码的字符串进行解码
url=decodeURIComponent(url);
console.log('解码后:'+url);
//转椅字符:在一对双引号后使用双引号,则里面的双引号必须写成对应的转义字符\"
var txt= "恩格斯说过:\"一个民族要想站在科学的高峰,就一刻也不能没有理论思维。\"";
document.write(txt);
var html = "<ul>\
<li>武汉</li>\
<li>北京</li>\
<li>上海</li>\
<li>广州</li>\
<li>重庆</li>\
</ul>";
document.write(html);
</script>
</body>
</html>
数组一
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--js的数组创建方式:
1.使用字面量: [a,b,b],元素的类型可以随意写,可以是不同类型
2.使用构造函数new Array(a,b,c)创建数组
-->
<script>
var arr1=[1,"a",true,undefined];
var arr2=new Array("a",1,true);
console.log(arr1);
console.log(arr2);
var arr3=[1,2,3,4,5];
console.log('数组长度:'+arr3.length);
//js中的数组大写是可以被修改的,当索引越界后,数组会自动的变大
arr3[5]=6;
console.log('数组长度:'+arr3.length);//6
console.log(arr3[6]); //访问下标越界的元素,返回undefined
console.log("****************************");
//遍历数组
for(var i=0;i<arr3.length;i++){
console.log(arr3[i]);
}
</script>
</body>
</html>
数组二
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
数组的方法
1.添加元素push():将1个或多个元素添加到数组的末尾,返回数组数组的新长度
2.添加元素unshift():将1个或多个元素添加到数组的开头,返回数组数组的新长度
3.删除元素pop():删除最后一个元素,返回被删除的元素的值
4.删除元素shift():删除第一个元素,返回被删除的元素的值
5.添加或删除元素splice(),参数如下:
start:【必须】整数,规定添加/删除项目的位置(包含),如果使用负数可从数组结尾处规定位置
deleteCount:【必须】要删除的项目数量。如果设置为 0,则不会删除项目。
items:【可选】向数组添加的新项目, 可以为一个元素也可以为多个元素。
6.join():将数组转换为字符串,和字符串的split()是相反的
-->
<script>
var arr1=["11","22","33"];
var length= arr1.push("44");
console.log(arr1);//["11","22","33","44"];
console.log("长度:"+length);
arr1.unshift("55","66");
console.log(arr1); //"55", "66", "11", "22", "33", "44"]
var c= arr1.pop();
console.log(arr1);//["55", "66", "11", "22", "33"]
console.log(c); //44
arr1.shift();
console.log(arr1);//["66", "11", "22", "33"]
//在索引2的位置,添加2个元素
arr1.splice(2,0,"44","55");
console.log(arr1);//["66", "11", "44", "55", "22", "33"]
//删除数组中的第3个元素
arr1.splice(2,1);
console.log(arr1);//["66", "11", "55", "22", "33"]
//添加和删除同时进行
arr1.splice(2,2,"aa","bb");
console.log(arr1);
var arr2=["welcome","to","武汉"];
var str=arr2.join("");
console.log(str);
</script>
</body>
</html>
函数
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!-- 函数:重复执行的代码块,相当于java中的方法
函数定义:function 函数名(参数1,参数2...参数n){
//函数体
[return value];
}
与java的方法不同的地方:1.js的函数不需要指定返回类型,也不需要写形参的类型,只需要形参名字
2.调用函数时,实参的个数可以和形参不一致
函数调用:函数名(实参1,实参2..实参n)
-->
<script>
function sum(a,b){
console.log(b);//undefined
return a+b;
}
/* var c= sum(5,6);
console.log("和:"+c);
c=sum(5,6,7);
console.log("和:"+c);*/
c=sum(5);
console.log("和:"+c);//5+undefined=NaN
</script>
</body>
</html>
函数二
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
匿名函数:没有名字的函数
函数表达式:把匿名函数赋给一个变量,此时变量就是函数表达式
可以函数表达式来调用匿名函数
arguments:它用在函数体内,是封装所有实参所构成的数组
-->
<script>
var sum=function (a,b){
console.log(b);//6
return a+b;
}
var c= sum(5,6);
console.log(c);//11
//定义一个函数,可以计算任何n个整数的和
function mySum(){
//console.log(arguments);
var sum=0;
for(var i=0;i<arguments.length;i++){
sum+=arguments[i];
}
return sum;
}
//传2个实参
var result= mySum(4,5);
console.log("和:"+result);
//传3个实参
result= mySum(4,5,6);
console.log("和:"+result);
//传4个参数
result= mySum(4,5,6,7);
console.log("和:"+result);
//局部变量:函数内用var声明的变量,在函数外不能访问
//全局变量:在函数外用var声明的变量,或者是函数内没有用var声明的变量都叫全局变量
//注意:所有的全局变量都是属于window对象,所有当窗口关闭时,全局变量才销毁,一般不需要用window.
function f1(){
var a=10;
console.log(a);
}
// console.log(a);
var b=10;
function f2(){
d=20;
}
f2();
console.log(b+"..."+window.d);
if(true){
var e=30;
}
//js中的变量只有函数作用域(全局作用域或者局部作用域),没有块级作用域.
//在代码块外面可以访问e
console.log(e);
</script>
</body>
</html>