数据类型
1. js中,所有数值的底层都是浮点型,在需要时,整型和浮点会自动转换--1.2+1.8=3
2. 特殊值
1. Infinity正无穷大
2. -Infinity负无穷的
3. NaN(not a number),和任何数值都不相等,和自己都不相等。如果要判断一个值是否为非数字,不能用NaN==x来判断,而是应该使用isNaN(x)进行判断
3. 包装对象:Number
1. 用单引号或双引号来引起来
2. 包装对象:String
1. true/false
2. 包装对象:Boolean
1. 值只有一个:undefined
2. 表示变量未定义
3. 如果声明了一个变量,但是没有初始化值,该变量就是undefined
1. 值只有一个:null
2. 表示现在的值为空
3. 常用作函数的返回值,表示一个没有任何内容的空对象
1. 转字符串类型:直接装换为对应值的字符串--3->"3"
2. 转布尔类型:0和NaN转成false,其他数值转换为true
3. 需要时,会自动转成对应的包装对象--100->new Number(100)
1. 空字符串“”:转数值为0;转布尔为false
2. 非空,纯数值字符串:转数值为对应数值;转布尔值为true
3. 非空,非数值字符串:转数值为NaN;转布尔为true
4. 需要时,转为对应的String包装类
1. true:转数值为1,转字符串为“true”
2. false:转数值为0,转字符串为“false”
3. 需要时转为包装类
转数值为NaN;转字符串“undefined”;转布尔为false;转对象会抛出异常
转数值为0;转字符串“null”;转布尔为false;转对象会抛出异常
1. ==和===:==先将两边的数据统一转化为一种类型在进行比较;===会比较类型和值
2. typeof 对象:返回对象的类型
3. delete 对象:删除对应对象
1. if 条件语句
如果判断条件不是布尔类型自动转化为布尔值
2. switch语句
语法和java大致相同,也支持字符串类型
3. 循环语句
js不支持增强for循环
函数
通过function关键字来定义一个函数
function 函数名(参数列表){
//函数体
}
//调用函数
函数名(实参列表);
通过函数表达式来定义一个函数
var fn =function(形参列表){
//函数体
}
//调用函数
变量名(实参列表);
var arr1=new Array();//创建一个空数组
var arr2=new Array(10);//创建一个长度为10的数组
var arr3=new Array("hello",666,true);//创建一个具有指定初始值的数组
var arr4=[];//创建一个空数组
var arr5=["x",100,false];
1. 数组的长度可以被任何改变
var arr=["a","b","c"];
arr.length=1;
//结果为["a"]
2. 如果数组中某一个位置没有元素,该位置的值为undefined
var arr=["a","b","c"];
arr[10];//undefined
3. JS中的数组可以存放任意类型的数据
var arr=[1,"2",true];
1. 创建
var str1=new String("xxx");
var str2="yyy";
2. 常用的属性和方法
1. 返回字符串的长度
str.lenth
2. 返回指定索引位置的字符
str.charAt(0)
3. 返回子串第一次出现的位置
str.indexOf("java",2)
4. 返回最后出现子串的位置
str.lastIndexOf("java",10)
5. 将字符串按照指定字符分隔为字符串数组
var arr=str.split("-")
6. 提取字符串的某个部分
str.slice(start,end)
7. 返回从指定位置开始的指定长度的子字符串
str.substr(start,length)
8. 字符串中的字母转换为小写
str.toLowerCase()
9. 字符串中的字母转化为大写
str.toUpperCase()
10. 匹配正则表达式
str.math(regexp)
11. 替换指定的字符串
str.replace(regexp,replaceText)
12. 查找与正则表达式匹配的第一个子字符串的位置
str.search(regexp)
1. 创建
1. var reg1=new RegExp("","");
2. var reg2=/XXX/;
2. 标识符
1. g(Global)全局查找
2. i(ignoreCase)忽略大小写
3. 从头到尾都匹配,需要以“^”开头,以“$”结尾
3. 函数
1. reg.test(str);
1. 创建
1. var arr1=new Array();
2. var arr2=[];
2. 常用的属性和方法
1. 返回元素的个数
arr.length
2. 将多个数组合并为一个
arr.concat(arr1,arr2,arr3)
3. 将数组中的元素按指定字符拼接起来
arr.join("-")
4. 反转数组
arr.reverse()
5. 返回数组的一段
arr.slice(start,end)
6. 从一个数组移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素
arr.splice(start,deleteCount,vaule...)
7. 移除数组的最后一个元素并返回
arr.pop()
8. 在数组的末尾添加一个或多个元素,并返回新数组的长度
arr.push(value)
9. 移除数组的第一个元素并返回该元素
arr.shift()
10. 返回排序后的数组
arr.sort(sortfunction)
11. 为数组的开始部分加上一个或多个元素并且返回该数组的新长度
arr.unshift(value)
1. 创建
1. var date1=new Date();//当前时间
2. var date2=new Date(年,月,日[时,分,秒]);//指定时间,月份从0开始
2. 常用方法
1. 把日期转变为一个本地日期格式字符串
date.toLocaleString()
2. 获取年份
date.getFullYear()
3. 获取月份
date.getMonth()
4. 获取日期值
date.getDate()
5. 获取星期
date.getDay()
6. 返回1970.1.1到现在的毫秒数
date.getTime()
1. 圆周率的值
Math.PI
2. 返回e的幂
Math.exp(number)
3. 绝对值
Math.abs(number)
4. 向上取整
Math.ceil(number)
5. 向下取整
Math.floor(number)
6. 四舍五入
Math.round(number)
7. 返回[0,1)之间的随机数
Math.random()
1. parseFloat(String)
2. parseInt(String)
3. isNaN(numValue)
4. eval(codeString)//判断一个字符串并将其以脚本代码的形式执行eval("alert('1+2')")---弹出3
定义对象
方式一:构造函数定义对象
function Person(){
//定义了一个空的Person对象
}
function Person(参数列表){
//对象的内容
}
var p={
"key1":"value1",
"key2":"value2",
"key3":"value3"...
}
1. p.key1;
2. p["key1"];
1. onclick--窗口被点击时触发
2. onfocus--窗口获得焦点时触发
3. onblur--窗口失去焦点时触发
4. onload--整个HTML文档加载完触发
1. alert()消息对话框
2. confirm()确认对话框
1. document.getElementById("id值");//通过id值获得指定id元素
2. document.getElementsByname("name值");//通过name值获得指定name元素组成的数组
3. document.getElementsByTagName("元素名");//通过标签名值获得指定标签名的集合数组
1. value//获取和设置输入框的value值
2. innerText//(部分浏览器不支持),获取或设置元素内的文本内容
3. innerHTML//获取和设置元素的HTML内容
1. document.createElement("div");//创建一个div元素
2. body.appendChild(元素);//往body里添加一个子元素
3. body.removeChild(元素);//删除body中的一个子元素
4. body.replaceChild(新元素,旧元素);//替换元素
5. body.insertBefore(添加的元素,本元素);//插入元素
6. 元素.cloneNode(boolean);//克隆元素,参数默认为false,表示只克隆本身,不克隆子孙元素。反之全部克隆