目录
整型(int)
number
NaN:
isNaN() : 可以转为数值:false
不能转换为数值 : true
Infinity 无穷大 属于 数值类型
Infinity 无穷大
-Infinity 负无穷大
布尔型(Boolean)
undefined
使用var声明变量但未初始化
区分空对象指针与尚未定义的变量
对未初始化的变量及未声明的变量使用
typeof运算符均会返回undefined
null
逻辑上null表示一个空对象的指针
使用typeof检测时会返回object
注意:
undefined 与 null 的关系
u 派生于 null 所以 == 进行比较时会返回true
boolean
使用Boolean()进行转换
转换为true :
- 任何非空字符串
- 任何非零数值
- 任何非空对象
转换为false:
- 空字符串
- 0 及 NaN
- null 及 undefined
字符串(string)
特性:字符串一旦被创建,其值将不能改变,若要改变必须销毁原有字符串
js的string对象:
方法:
toString() 使用类型:number boolean string object
String() 利用对象创建字符串
eval() 计算字符串表达式的值并以数值形式返回。
查找方法:
字符方法:
- charAt(index) : 返回字符串中第n哥字符,参数超出范围返回空字符串
- charCodeAt(index) : 返回字符串中第n个字符的Unicode编码。参数超出范围返回NaN
var a = "asd"; var s = a.charCodeAt(1); s;
- 【待补】fromCharCode(): 根据字符编码创建字符串
位置方法:
- indexOf() 从前向后开始查找,不存在返回 -1
- lastIndexOf() 从后向前开始查找,不存在返回 -1
两个方法共同的参数:1.要查找的项; 2.表示查找起点的位置索引(可选)
匹配方法:
- match("需要匹配的字符串") 返回匹配成功的字符串,没有返回null
属性:
input 调用该方法的字符串对象
index 匹配为本的起始字符在字符串中的位置
lastIndex 匹配为本的末尾字符在字符串中的位置
- search("需要匹配的字符串") 返回索引,没有返回 -1
- replace("旧字符串","新字符串")
- split("字符",limit) 指定字符切割,limit指切割完后 数组保留几个元素,默认全部
操作方法:
拼接方法:
- concat() 语法: string.concat(value1,...) 功能和 + 相同
截取方法:
根据下标截取子串:
- slice(截取的开始位置,结束位置-默认最后) 得到字符串
如果参数为负值,则截取的开始位置 == 负值 + 字符串的长度
- substring(截取的开始位置,结束位置-默认最后) 得到字符串
如果参数为负值,则截取的开始位置 == 0
根据长度截取字串
- substr(截取长度,返回的字符个数)
如果截取长度为负值,则 负值+ 字符串的长度, 参数2 转换为0
空格处理:
- trim() 清除前置及后缀空格
- trimLeft() 清除前置空格
- trimRight() 清除后缀空格
转换方法:
转为大写:
- toUpperCase()
转为小写:
- toLowerCase()
与html相关的方法
- bold(); 加粗
- fontcolor();设置字符串的颜色
- fontsize():设置字体的大小
- link():将字符串显示称超链接
- sub() 下标
- sup():上标
数组
创建数组:
1.var Obj = new Array();
2.var Obj = new Array(10); // 指定数组长度
3.var Obj = new Array("1","2",...,"n"); // 指定元素
存取数组元素:
数组名[下标索引];
数组的特点:
数组下标是从0开始
下标类型:
数值
非数值:转为字符串
生成关联数组
下标将作为对象属性的名字
例如:
var obj = new Array(); obj["1"] = "2"; obj["a"] = "a"; obj ————》 (2) [empty, "2", a: "a"]
数组元素可添加到对象中
增加数组:
使用 [ ] 运算符指定一个新下标: obj["不存在的下标"] = 新值;
删除数组:
delete 数组名[下标]; (有问题待深入)
遍历数组:
1) for (var 数组元素变量 in 数组名){
数组元素变量值为 数组下标;
}
2) for (var i = 0;i<数组.length;i++){
i 为 数组下标;
}
数组属性:
constructor 引用数组对象的构造函数 (待测)
length 返回数组的长度
prototype 通过增加属性和方法扩展数组定义 (待测)
数组的方法:
添加:
- push() 在数组末尾添加数组
- unshift() 在数组头部添加元素
- concat() 合并两个数组
删除:
- pop() 删除并返回数组的最后一个元素
- shift() 删除并返回数组的第一个元素
子数组:
- splice()
1)删除任意数量的项:
参数:1.要删除的起始下标; 2.要删除的项数
2)在指定位置插入指定的项:
参数:1.起始下标; 2.0(不删除任何项); 3.要插入的项
3)替换任意数量的项:
参数:1.起始下标; 2.要删除的项数; 3.要插入的项
- slice() 从已有数组中选取部分元素构成新数组
参数:1.返回项的起始位置; 2.返回项的结束位置 (包前不包后)
特点: 如果是负数,则用数组长度加上该值确定位置。(如果负数大于数组长度则从下标0开始读取)
数组排序:
- reverse() 反转
- sort() 排序
特点:
默认为按字符串比较
按数值大小比较,需函数支持(升序)
function compare(value1,value2){ if (value1 < value2){ return -1; }else if (value1 > value2){ return 1; }else{ return 0; }
数组转换:
- toString() 转换为字符串并返回
- toLocaleString() 转换为本地格式字符串并返回 (没发现这两个的区别)
- join() 以 指定字符进行拼接
位置方法:
- indexOf() 从数组的起始位置开始查找
- lastIndexOf() 从数组的结束位置开始查找
两个方法共同的参数:1.要查找的项; 2.表示查找起点的位置索引
迭代方法:
- every() 如果该函数对每一项都返回true,则返回true
- some() 有一项返回true,则返回true
- filter() 返回值为true的所有数组成员
- forEach() 无返回值
- map() 返回每次函数调用的结果数组
参数:暂不懂
缩小方法:
- reduce() 从数组起始位开始遍历
- reduceRight() 从数组末尾开始遍历
参数:暂不懂
对象
1.直接创建的实例:
person = new Object(); person.name = "admin"; person.age = "18"; console.log(person.name); 简写形式: person = {name:"admin",age:18}; console.log(person.name);
2.只用对象构造器
function person(name,age){ this.name = name; this.age = age; } 一旦有了对象构造器,就可以通过 new 来创建对象了 var haha = new person("adc",12);
3.查看属性:
通过 已存在的 对象 进行 . 操作
peroson.name
4.修改属性
通过 . 再重新赋值
person.name = "username";
函数
js的函数:
参数列表不需要写 var
1)使用关键字 function
function 方法名(参数列表){
方法体;
返回值(可有可无);
}
调用方法 : 方法名();
2)匿名函数
function (参数列表){
方法体;
返回值(可有可无);
}
3)new Function("参数列表","方法体和返回值");
注意 2 和 3 方式如若要被调用,则需要去一个名字。
调用方法:
直接调用:函数名(实参列表)
在连接中调用:<a href="javascript:函数名()">描文字</a>
在事件中调用:事件类型 = "函数名()"
函数参数
多余形参 = undefined
多余实参 被忽略
指针标识:
this : 指向当前操作对象
callee : 只想参数集合所属函数
prototype : 只想函数附带的原型对象
constructor : 指向创建该对象的构造函数
js的全局函数
eval() :执行js代码
encodeURI(); 对字符进行编码
decodeURI():对字符进行解码
encodeURIComponent()和decodeURIComponent()
isNaN():判断当前字符串是否是数字 不是数字是true,是数字是false
正则 : 空