javaScript
概念
是一门弱类型的脚本语言,浏览器(客户端)中有解析javaScript的引擎。不需要编译,可以直接解析和运行javaScript
JavaScript = ECMAScript + BOM +DOM
功能:
增强html与用户的交互过程,可以控制Dom节点。添加动态效果,提高交互性。
语法:
使用方式:
1.在html中直接写
<script>
alert("hello world")
</script>
2.先在.js文件中编写,然后再html中引用,并调用里面的方法。
<script src="js/a.js">
<script/>
注释
单行注释
// 注释的文字
多行注释
/*
注释的文字
*/
数据类型
1.原始数据类型
number:数字类型
NaN:非数字类型
string:字符串类型(使用双引号或单引号)eg: ‘abc’,“sss”
boolean:布尔类型,true和false
null:空数据类型(object类型)
undefined:未定义(定义变量后未初始化)
2.引用数据类型
对象的类型
//定义变量
var 变量名 = 数据值;
<script>
var a =3;//number类型
alert(a);
//在html页面上显示a
document.write(a);
var b= "aaa";//string类型
var c=true;//boolean类型
var d=null;//null类型
var e; //undefined类型
</script>
//查看数据类型 typeof(数据)或 typeof 数据;
alert(typeof(a));
//运算符
//一元运算符 同java一元运算符
++: 自增
--: 自减
+ : 正号
- : 负号
//算数运算符
+ : 加
- : 减
* : 乘
/ : 除
//不同类型的+运算
document.write(true+1); //2 true被转为1
document.write(false+1); //1 false被转为0
document.write("123"+1);//1231 拼接字符串
//使用非数字类型的数据自增
var str = "123";
document.write(str++);//124,先将字符串转为对应数字再自增
var str2 = "12.3"
document.write(str2++);//13.4,先将字符串转为小数,再自增
var str3 = "hello";
document.write(str3++);//NaN,hello不能转换为数字
var b = true;
document.write(b++);//2,将true转为1,再自增
var b2 = false;
document.write(b2++);//1,将false转为0,再自增
//赋值运算符
= : 把等号右边的值赋给左边
//复合赋值运算符 使用右边的数据与左边的变量相加得到一个结果,然后把结果赋值给左边的变量
+=,-=,*=,/=
//比较运算符
>,<,>=,<=,!=,===(全等于)
//数据类型相同 直接比较
//数据类型相同 转换后比较
var str ="hello";
document.write(str>0);//false,转为NaN然后比较
document.write(str>1);//fasle,转为NaN然后比较
var str2 ="123"
document.write(str2>1);//true,转为对应数字然后比较
var str3="world";
document.write(str>str3);//false,使用对应字符的ascii数字自然升序进行比较
// ===全等于
doccument.write("123"===10);//false,只有数据类型和数据值都相等时才返回true;
//逻辑运算符
&&: 与
||: 或
!: 相反
//左右两边都是boolean类型 与java类似
//左右两边有非boolean类型的数据(输出决定结果的那个值)
//number类型 把0当作false,把非0当作true
document.write(10&&true);//true
document.write(0&&true);//0
//非number类型
document.write(NaN&&true)//NaN
//string类型 除了""当作false 使用其他都为true;
document.write(null&&true);//null
document.write(undefined&&true);//undefined
//三元运算符
var a=3;
var b=4;
document.write(a>b?a:b);//b 条件?条件成立的值:条件不成立的值
//流程控制语句
//if条件分支语句
//switch条件分支语句 执行的是与数据相同值的语句体
//支持的数据可以是任何类型的数据
switch(数据){
case 值1:
语句体
break;
...
default:
语句体
break;
}
//for循环
for(var 变量=值;条件;步进语句(条件控制语句)){
语句体
}
//while循环
//do...while循环
*注意:语句以;结尾,如果一行只有一条语句,分号可以不写(不建议)。
定义变量时可以使用var,也可以不使用。(用:定义的是局部变量 不用:定义的是全局变量)
基本对象
//Function 函数(方法)
//创建方式
1. var 方法名 = new function("参数列表","方法体"); //不建议用
2. function 方法名(参数列表){方法体};
3. var 方法名 = function(形参列表){方法体};
//访问方式
函数名(实参列表);
//访问属性
length:表示方法中形参的个数
//特点
1.定义函数时,形参不用指定类型
2.同名的函数会被覆盖(同名的情况下,方式3优先于方式2调用)
3.在定义函数时,形参列表中隐藏了一个arguments数组,调用函数时会将所有参数传递给该数组
4.定义有返回值的函数时直接return返回不需要在方法名前加返回值类型
//Array
//创建方式
1.var arr = new Array(元素1,元素2,...);
2.var arr = new Array(默认长度);
3.var arr = [元素1,元素2,...];
//属性
length: 表示数组的长度
//特点
1.在数组中的元素可以是任意类型的
2.数组的长度是不固定的,随着元素的增加动态增加
3.未赋值的索引处的类型为undefined
//Boolean
//Date
//创建对象 var date = new Date();
getDate() 得到是该月第几天
getTime() 返回从1970.1.1开始的毫秒数
parse()返回从1970.1.1到指定时间的毫秒数
toLocalString 根据本地时间格式,将时间转换为字符串
//Math
不需要创建对象,直接Math.方法名()调用
abs() 取绝对值
ceil() 向上取整
floor() 向下取整
round() 四舍五入
random() 得到0~1的随机数(不包含1)
//Number
//String
//RegExp 定义字符串的祖成规则
//创建
1.var reg = new RegExp("正则表达式");
2.var reg = /正则表达式/
//组成
1.单个字符
2.量词符号
3.开始结束符号
//方法
test(参数) 验证指定的字符串是否符合正则(注意:开头加^结尾加$)
//Global 全局变量
encodeURI 把字符串编码为url
encodeURIComponent 把字符串编码为url组件
decodeURI 解码url
decodeURIComponent 解码url组件
isNaN 判断是否为数字