引用类型 -《JavaScript高级程序设计》阅读笔记

引用类型
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();
image-20220704113930514

0705

Date类型
//支持
var start = Date.now();
//不支持
var start = +new Date(); //获得时间戳

比较日期大小建议使用valueOf(),因其返回毫秒表示;

函数有点多,指路p102。

RegExp(regularexpression)类型

定义字符串规则,检查/提取

详情指路:

尚硅谷JS教程-正则部分

视频相关笔记

一些概念

两种创建方式:正则表达式字面量(循环调用会失败) & 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();

image-20220706115123134

舍入方法

random();

//1~10随机数
var r_value = Math.floor(Math.random() * 10 + 1);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值