JavaScript的组成:ECMAsxcript(语法)、Browser Objects(DOM BOM 特性)组成
使用script标签在HTML中插入JavaScript,编写内部JavaScript
Document
引用外部JS文件
Document
alert(flag); console.log(flag);
1、这种是函数声明,可以先使用后定义。
function fun1(){
代码段;
return;
}
2、这种叫做:函数表达式,必须先定义后使用
var fun1 = function(x){ return x+1; }
a. 简单数据类型:
1、 undefined
2、 null
3、 boolean
4、 number
5、 string
b. ECMAScript6: es6 新增symbol数据类型
c. 复杂数据类型:Object -- 对象
1、number -- 数字类型,整型、浮点型都包括。
2、string -- 字符串类型,必须放在单引号或者双引号中
3、boolean -- 布尔类型,只有true和false 2种值(布尔常用在条件测试中)
4、undefine -- 未定义,一般指的是已经声明,但是没有赋值的变量,派生自null值, undefined==null ----> 返回的是true
全等(===)和不全等(==)
null==undefined会返回true,因为它们是类似的值;但null===undefined会返回false,因为它们是不同类型的值。
5、null -- 空对象类型,var a = null(释放指向对象的引用); 和 var a = "";有区别;
null 和 undefined 的值相等,但类型不等:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
var a; // a 自动被赋值为 undefined
它是判断一个值能否被 Number() 合法地转化成数字。
null、空字符串""、空数组[],都可被Number()合法的转为0,于是被isNaN认为是数,返回false。
undefined、空对象{}、空函数等无法转数字,返回true
Number(true)=1,Number(false)=0,所以isNaN对布尔值也返回false
4. 任何涉及NaN的操作(例如NaN/10)都会返回NaN
5. NaN与任何值都不相等,包括NaN本身。
var id="16"; console.log(isNaN(id));//false 转换之后是数字 var id="lisi"; console.log(isNaN(id));//true 转换之后不是数字
返回值:string number boolean object undefined function
typeof "John" // 返回 string
typeof 3.14 // 返回 number
typeof NaN // 返回 number
typeof false // 返回 boolean
typeof [1,2,3,4] // 返回 object
typeof {name:'John', age:34} // 返回 object
typeof new Date() // 返回 object
typeof function () {} // 返回 function
typeof myCar // 返回 undefined (如果 myCar 没有声明)
typeof null // 返回 object
Number() - 包括整数和小数 可以将字符串转换为数字。
字符串只包含数字(如 "3.14") 转换为数字 (如 3.14).
空字符串转换为 0。
其他的字符串会转换为 NaN (不是个数字)。
可将布尔值转换为数字。
(Number(false) // 返回 0 Number(true) // 返回 1)
Boolean() - 转换成逻辑类型(布尔常用在条件测试中)
null、空字符串""、 undefined、0, 返回false
有值的 返回 true
使用 if....else 语句在条件为 true 时执行代码,在条件为 false 时执行其他代码。
==:相等,只比较值是否相等。
===:全等,比较值得同时比较数据类型是否相等。
!=:不相等,比较值是否不相等。
!==:不全等,比较值得同时比较数据类型是否不相等。
返回都是boolean类型
if(判断条件){ }else{ }
多重if嵌套控制语句
if(判断条件){ }else{ if(){ }else{ } }
2. 多条件分支类控制语句演示
//成绩是100分,显示满分
//成绩大于等于90,显示优秀
//成绩大于等于70,显示良好
//成绩大于等于60分,显示及格
//否则,不及格
var myscore=55;
var str;
var n=parseInt(myscore/10);
switch(n){
case 10:
str="manfen";
break;
case 9:
str="youxiu";
break;
case 8:
case 7:
str="lianghao";
break;
case 6:
str="jige";
break;
default:
str="bujige";
break;
}
//for循环 //1+2+3+4+5+。。。。+100=5050 var i; var sum=0; for(i=0;i<=100;i++){ //sum=sum+i; sum+=i; } console.log(sum);
//1+2+3+4+5+。。。。+100=5050 //while循环是先判断条件,条件满足了再继续执行 var i=0; var sum=0; while(i<=100){ sum=sum+i; i++; } console.log(sum);
//1+2+3+4+5+。。。。+100=5050 // do-while: 先执行一次,执行完之后再进行判断 var i=0; var sum=0; do{ sum=sum+i; i++; }while(i<=100); console.log(sum);
var str = "520134199906061234";
//两个参数,索引从0开始,截取到0
//第一个参数表示从哪儿开始,第二个参数表示截取的长度
console.log(str.substr(0,3));
console.log(str.substr(1,3));
console.log(str.substr(3,6));//起始位置 长度
//两个参数,索引从0开始
//第一个参数:起始位置,第二个参数表示:结束位置,算前不算后
console.log(str.substring(0,3));//520
console.log(str.substring(6,10));//1999
console.log(str.substring(6,11));//起始位置 结束位置
var str="Hello world!";
// console.log(str.substr(0,5));//Hello
// console.log(str.substring(0,5));//Hello
console.log(str.substr(3));//一个参数表示索引位置,截取到最后
console.log(str.substring(3));//一个参数表示索引位置,截取到最后
//charAt()获取字符串 但是根据索引位置获取
var str = "520134199906061234";
console.log(str.charAt(16));//3
var n = parseInt(str.charAt(16));
if (n%2 == 0) {
console.log("nv");
} else {
console.log("nan");
}
console.log(str.length);//获取字符串的长度
//indexOf() 参数:索引位置 查找1在str字符串中的第一次出现的位置
//索引从0开始
console.log(str.indexOf(1));//3
//两个参数表示 从索引位置4开始查找,找索引位置4后面的1出现的位置(索引1在位置4后面出现的位置)
console.log(str.indexOf(1,4));//6
//有一个自动类型转换 可以加上""
console.log(str.indexOf("1",4));//6
var str="Hello world!";
//返回某个指定的字符串值在字符串中首次出现位置
document.write(str.indexOf("Hello")+"
");//0
//如果某个指定的额字符串在源字符串中不存在,返回-1
document.write(str.indexOf("wwww")+"
");//-1
//返回某个指定的字符串值在字符串中首次出现位置
document.write(str.indexOf("world"));//6
//document.write可以解析html标签
// document.write("渡课
");
//split -- 将字符串有规律的转换成数组 [11,22,33556,0]
// var str = "aa,ttt,121,gg,kk,aa,bb";
// var arr = str.split(",");
// console.log(arr);
// console.log(arr[7]);
var str = "How are you";
console.log(str.split(" ",2));
var str = "aa,ttt,121,gg,kk,aa,bb";
var arr = str.split(",");
console.log(arr);
console.log(arr[0]);
//concat -- 既可以连接字符串,也可以连接数组
console.log(str.concat(",55",",77",",00"));
console.log(arr.concat("55","77","00"));
//replace:替换(配合正则表达式)
//如下写法只会替换第一个符合要求的字符串
var str = "aa,ttt,121,gg,kk,aa,bb";
console.log(str.replace("aa","dodoke"));
//全部替换的功能
console.log(str.replace(/aa/g,"dodoke"));
1、日期函数:
(1) Date getDate getDay getMonth getFullYear (getYear) getHours getMinutes getSeconds
//2020-5-20 15:58 日期格式化 function fun_FmtDate(){ var d1 = new Date(); var yyyy,mm,dd,hh,mi,ss; var time; //逻辑代码 yyyy=d1.getFullYear(); mm=d1.getMonth()+1; dd=d1.getDate(); hh=d1.getHours(); mi=d1.getMinutes(); ss=d1.getSeconds(); time=yyyy+"-"+mm+"-"+dd+" "+hh+":"+mi+":"+ss; return time; } console.log(fun_FmtDate());
1、数学函数
(1) Math.round max min abs
//数学函数 var n = 16.654789; console.log(Math.round(n));//js中round只能取整数,不能保留小数,遵循四舍五入。 //保留小数 遵循四舍五入 console.log(n.toFixed(2)); console.log(n.toFixed(0));//17 //取最小 console.log(Math.min(2,6,81,1)); //取最大 console.log(Math.max(2,6,81,1)); //取绝对值 console.log(Math.abs(-3)); console.log(Math.abs(5));
//声明或者创建一个不指定长度的数组,又称之为实例化创建 var arrayObj = new Array(); //声明或者创建一个数组并指定长度的数组 var arrayObj = new Array(5); //声明或者创建一个带有默认值的数组 var arrayObj = new Array(2,4,"a","y",8); //创建一个数组并赋值的简写,又称之为隐式创建数组 var arrayObj = [2,4,"a","y",8]; console.log(arrayObj); console.log("数组arrayObj的长度为:"+arrayObj.length); //数组的赋值,字符索引下标,数组的遍历 console.log(arrayObj[0]);//2 console.log(arrayObj[4]);//8 console.log(arrayObj[5]);//undefined for(var i in arrayObj){ // console.log(i);//获取的是索引值 console.log(arrayObj[i]); } var i; var n=arrayObj.length; for(i=0;i
(a-b从小到大,b-a从大到小排序)
获取属性
设置属性
删除属性
删除属性值
JavaScript对表单操作分为三种:初始化 赋值 取值
(2) getElementsByTagName 返回的是包含带有指定标签名的所有元素的节点列表
(3) getElementsByClassName 返回的是包含带有指定类名的所有元素的节点列表
(4) getElementsByName 获取相同名称(name)的元素的所有节点列表