js输出
在页面输出:
document.write('hello world!');
在控制台输出:
console.log('hello world!')
对话框输出:
alert('hello world!')
===判断值和类型是否相等,boolen类型
代码执行顺序:
1.顺序执行
2.分支判断
if if else 三目运算符(条件判断) ? (true执行的) : (false执行的) 多路选择结构(switch)
switch引例
var age = window.prompt('输入一个数字');
// window.prompt 输入的内容是字符串
console.log(typeof age);
console.log(typeof(age*1));
switch(age*1) { //switch本来就是跳转的意思(又称为“开关”),所以switch语句就是判断情况,跳到符合的情况开始执行
case 4:
alert("c的值是4");
case 3:
alert("c的值肯定大于等于3");
case 2:
alert("c的值肯定大于等于2");
break;
case 1:
alert("c的值肯定大于等于1");
}
// if(age==4 || age==3 || age==2 || age==1){
// alert("c的值是4");
// alert("c的值肯定大于等于3");
// alert("c的值肯定大于等于2");
// alert("c的值肯定大于等于1");
// }
var age = window.prompt('请输入年龄...');
age *= 1;
// 比较case后面的内容 是否与switch后面的内容相等
switch(true) {
case age<=18:
console.log('少年')
break;
case age>18 && age <= 30:
console.log('青年')
break;
case age>30 && age <=50:
console.log('中年')
break;
case age>50 && age<=75:
console.log('中老年')
break;
case age>75:
console.log('老年')
break;
}
3.循环
for
do while 至少会执行一次
while 可能一次都不执行
函数
1.function声明一个函数function 函数名(形参)
例子:
function sum(num1, num2) {
return num3 = num1*1 + num2*1;
//函数中遇到return关键字,直接返回,后面的内容不会继续执行
console.log(888);
}
2. 方法调用 :实际参数
var num4 = sum('1111',2);
3.局部变量:在函数体内 全局变量:在函数体外
4.变量提升
只有var关键字定义的 才会出现变量提升
eg:
console.log(a);
var a=1;
根据var的变量提升原则相当于
var a;
console.log(a);//a undifind
a=1;
函数的变量名提升
a();
function a(){
console,log(123456);
}
数组(参考javascript参考手册)
1.定义数组
var arr=[];
var arr1=new Array();
参数是一个值,定义了一个数组,参数表示数组的长度 length
eg: var arr2 = new Array(4);// [ , , , ]
参数是多个值,对数组进行了初始化
eg: var arr3 = new Array(4,5,6);//[4, 5, 6]
2.数组长度获取
数组名.length
eg:var arr4 = [1,2,3,4,5,6];
console.log(arr4.length);
3.undefined 数组已经声明过了,但是未赋值
4.concat 数组的拼接, 返回一个新的数组
eg:var a1 = [1,2];
var a2 = [2,3];
var a3 = a1.concat(a2);
console.log(a3);
5. push 在数组的末尾添加内容 返回的是数组的长度
eg:ar len = a1.push(3,4);
6. pop 删除数组的末位 返回的是删除之前的最后一位 eg:var a = a1.pop();
7.shift删除数组的第一项 返回的是原数组的第一个值
eg:var a = a1.shift();
8.unshift 在数组的开头添加 返回数组的长度
eg:var d = a3.unshift(1);
9.slice(start, end)
从数组中提取一部分,从下标start开始到end(不包含end)
10.splice 像原数组添加或删除,并且会修改原数组
eg:var a9 = a7.splice(0,0,9); 第0个开始,删除0个,添加一个9
var a8 = a7.splice(0,1); 第0个开始,删除一个,返回的是删除的
11.reverse 颠倒数组的顺序 并且会修改原数组
eg: b.reverse();
12.sort 排序 会对原数组修改
eg: var b1 = ['11','12','24','2','3'];
function s1(a,b) {
return a-b 升序排列
return b-a 降序排列
}
b1.sort(s1)
13.tostring数组转字符串 原数组不变
eg:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.toString())
</script>
输出:
George,John,Thomas
14.join分隔符
15.改数据数据和地址问题,原变量是否变,和c一样
对象:(和C++类一样的使用方式)
1.定义对象
eg:法一:var obj = {};
var person = {
// key: value
name: 'xiaoming',
age: '18',
eat: function() {
console.log('eat.....');
}
}
法二:
var obj1 = new Object();
obj1['name'] = 'xiaoming';
for in循环对象
for( key in course) {
console.log(key);
console.log(course[key])
}
对象 数组一起用
var courseList = [
{
name: 'html',
price: '111'
},
{
name: 'css',
price: '222'
},
{
name: 'js',
price: '333'
}
//与for in一样,循环对象
document.write('<ul>');
for(var i =0 ; i< courseList.length; i++){
document.write('<li class="list">'+courseList[i].name+':'+courseList[i].price+'</li>');
math.random();随机数
创建对象
var day = new Date();
var year = day.getFullYear();此处返回
还可以返回年月日分秒毫秒
字符串对象
创建字符串对象:
法一:var str1="hello world";
法二:var str2=new String('hello');
字符串的方法和属性:
字符串长度 str1.lenght;
字符串位置 str2.indexOf
字符串最后出现位置 str1.lastIdex
替换 str1.replace('hello','xiao');//用xiao代替了hello
返回从指定位置开始的指定字符串长度str.substr(0,5)//0位置开始,长度为5的字符串具体内容
substring(0,5)//0位置开始,5位置结束,且不包括5位置的字符串
toLowerCase 转为小写字母
toUpperCase 转为大写字母
split 分割符