引用类型
ECMAScript是面向对象的语言,但没有类和接口等基本结构,引用类型和类相似但不相同;
Object类型
虽然其实例不具备多少功能,但可用来存储和传输数据;
对象字面量表示是向函数传递大量参数的首选方式;
对必须值使用命名参数,用对象字面量封装可选参数;
访问对象属性,除了点表示法,还有方括号表示法;
Array类型
每一项可以是不同类型数据;
var colors = new Array("red","yellow","blue"); //用array构造函数创建数组;
var colors = ["red","yellow","blue"]; //用数组字面量表示法
当把一个值放在超出当前数组大小的位置上时,数组会重新计算长度值;
valueOf() 返回的还是数组;
join() 使用不同分隔符构建返回的字符串;
//栈方法
push();pop();
//队列方法
shift();unshift();
//重排序方法
values.sort(compare); //sort会先调用toString()方法,因此数值会被当作字符出串比较
function compare(val1,val2){
return val2-val1;
}
//操作方法
var color2 = color1.concat("red",["yellow","blue"]);
slice();splice();
//位置方法:查找特定找在数组中的位置
indexOf();lastIndexof(); "==="
//迭代方法
every();some(); //返回判断结果
filter(); //返回筛选过的数组
forEach(); //对数组进行操作,不返回结果
map(); //返回处理过的数组
//归并方法
reduce();reduceRight();
0705
Date类型
//支持
var start = Date.now();
//不支持
var start = +new Date(); //获得时间戳
比较日期大小建议使用valueOf(),因其返回毫秒表示;
函数有点多,指路p102。
RegExp(regularexpression)类型
定义字符串规则,检查/提取
详情指路:
视频相关笔记
一些概念
两种创建方式:正则表达式字面量(循环调用会失败) & RegExp构造函数
匹配模式:g/i/m
元字符:{} [] () \ ^ $ | ? * + .
写的时候考虑 什么类型,有没有,有几位,出现几次;
可用现成的已经写好的规则;
Function类型
ECMAScript的函数是对象,函数名是指向对象的指针——一个函数有多个名字是ok的;
//使用函数声明语法定义
function sum (num1,num2){}
//使用函数表达式定义
var sum = function(num1,num2){};
//使用Function构造函数
var sum = new Function('num1','num2','return num1 + num2'); //解析代码后解析函数体字符串
解析器会在执行代码之前率先读取函数声明;
函数可被作为函数的结果返回
function callSomeFunction(someFunction,someArgument){
return someFunction(someArgument);
}
也可在内部被嵌套
function createComparisonFunction(propertyName){
return Function(object1,object2){
...
return ...
}
}
函数内部属性
argument.callee(); //指向拥有该argument对象的函数,严格模式下错误
XX.caller; //调用当前函数的函数的引用
this.XX; //引用函数执行的环境对象
函数是对象——函数有属性和方法
XX.length; //接收到的命名参数个数
prototype
XX.apply(this/window,arguments);
XX.call(this,num1,num2); //特定环境下调用函数——扩充作用域,对象可与方法解耦合
XX.bind(); //绑定作用域
基本包装类型
基本类型值不是对象,为了实现方法,后台经过操作,将基本类型转化为实例
但生存期较短——不能添加属性和方法;
布尔表达式所有对象都会被转换为true——never use it!
Number类型
//一些返回数值字符串的表示
num.toFixed();
num.toExponential();
num.toPrecision(); //按情况选用以上
String类型:字符串的对象包装类型
各种方法,指路 p123;
字符方法
字符串操作方法
位置方法
trim(); //空格
大小写转换 //不知道代码在哪种语言环境中运行,最好使用 toLocaleUpperCase() 这种针对特殊地区实现的方法
字符串模式匹配方法
localeCompare();
fromCharcode();
单体内置对象
不依赖宿主对象,不必显式实例化,程序执行前就已存在;
Global
URI编码方法
encodeURI();encodeURIComponent();
decodeURI();decodeURIComponent();
eval方法(??)
被传入其中的参数可被当成ECMAScript语句解析;
谨防代码注入;
一些属性,指路p133;
获取全局对象的方法
return window.attribute;
return this;
Math对象
指路 p134;
对象属性
Math.min(); Math.max();
![]()
舍入方法
random();
//1~10随机数 var r_value = Math.floor(Math.random() * 10 + 1);