JS高级教程03

规律的制定一个计划,有助于自己的学习
需要牢记一些常用的数组,字符串,对象的一些方法,属性
例如: https://www.html.cn/doc/lodash/

第三章的相关知识点

  1. 一个变量在一个函数退出时就会销毁

数据类型

  • 基本:Undefined, Null,String.Number,Boolean
  • 引用:Object
    这时,可以使用typeof来进行判断,但是对于引用类型只能判断出是一个对象,如果需要仔细判断需要是哟很instanceof

但是值得一说的是, null 是一个空对象指针
typeof null ,也是一个对象(object),这时因为对象的二进制前两个为00所致,
undefined其实是有null 派生的, 所以, undefined==null,true, 这是需要注意的

Boolean的值只有两个一个为true,一个为false,
但是对于非空字符串,Boolean(“xx”)都是为true的 ,
Boolean(""), Boolean(0/null/unde) 均为false,

对于Number 类型, 浮点数的计算会产生误差;

数值、布尔值、对象和字符串值(没错,每个字符串也都有一个 toString()方法,
该方法返回字 符串的一个副本)都有 toString()方法。
但 null 和 undefined 值没有这个方法

Object 类型, 对象类型

var o= new Object()

  • object 是所有对象的基础, 所有的对象都有以下的属性与方法:
  1. constructor :保留创建当前对象的函数, 这里o这个对象的构造函数就是:Object();
  2. hasOwnProperty, 用于检测属性是否在当前对象的实例中(非实例的原型中),参数的属性以字符串的类型
  3. isPropertyOf, 传入的对象是否是对象的的原型;
  4. toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
    例如: new Date().toLocaleString()
     toString():返回对象的字符串表示。
     valueOf():返回对象的字符串、数值或布尔值表示。通常与 toString()方法的返回值

*对于操作符
==, 与!= , 都是会做强制类型转换的,

参数

ECMAScript 函数的参数与大多数其他语言中函数的参数有所不同。ECMAScript 函数不介意传递进
来多少个参数,也不在乎传进来参数是什么数据类型。也就是说,即便你定义的函数只接收两个参数,
在调用这个函数时也未必一定要传递两个参数。可以传递一个、三个甚至不传递参数,而解析器永远不 会有什么怨言。之所以会这样,原因是
ECMAScript 中的参数在内部是用一个数组来表示的。函数接收
到的始终都是这个数组,而不关心数组中包含哪些参数(如果有参数的话)。如果这个数组中不包含任
何元素,无所谓;如果包含多个元素,也没有问题。实际上,在函数体内可以通过 arguments 对象来
访问这个参数数组,从而获取传递给函数的每一个参数。 其实,arguments 对象只是与数组类似(它并不是 Array
的实例),因为可以使用方括号语法访 问它的每一个元素(即第一个元素是 arguments[0],第二个元素是
argumetns[1],以此类推),使 用 length
属性来确定传递进来多少个参数。在前面的例子中,sayHi()函数的第一个参数的名字叫 name,而该参数的值也可以通过访问
arguments[0]来获取。因此,那个函数也可以像下面这样重写, 即不显式地使用命名参数

function doAdd(num1, num2) {
 if(arguments.length == 1) {
 alert(num1 + 10);
 } else if (arguments.length == 2) {
 alert(arguments[0] + num2);
 }
} 

第四章的相关知识点

数组的 length 属性很有特点——它不是只读的。因此,通过设置这个属性,可以从数组的末尾移 除项或向数组中添加新项

可以用来在数组最后一项添加新项,

var colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组
colors[colors.length] = "black"; //(在位置 3)添加一种颜色
colors[colors.length] = "brown"; //(在位置 4)再添加一种颜色

数组的迭代方法:
在这里插入图片描述
对于正则表达式,还是需要在多加学习,使用.练习

在函数内部,有两个特殊的对象:arguments 和 this

基本包装类型

在这里插入图片描述
在这里插入图片描述

使用字面量来创建实例的时候, 此时的constructor,不在指向构造函数,会直接指向Object,

在上面的代码中,我们将 Person.prototype 设置为等于一个以对象字面量形式创建的新对象。
最终结果相同,但有一个例外:constructor 属性不再指向 Person 了。前面曾经介绍过,每创建一 个函数,就会同时创建它的
prototype 对象,这个对象也会自动获得 constructor 属性。而我们在 这里使用的语法,本质上完全重写了默认的
prototype 对象,因此 constructor 属性也就变成了新 对象的 constructor 属性(指向 Object
构造函数),不再指向 Person 函数。此时,尽管 instanceof 操作符还能返回正确的结果,但通过 constructor
已经无法确定对象的类型了,如下所示。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值