Javascript 高级程序设计 01(读书笔记)ing....

本文深入探讨JavaScript的基础知识,包括数据类型检测、垃圾回收机制、数组操作方法、对象属性详解及函数内部工作原理。同时,文章覆盖了常用内置对象如Array、Object、Function等的特性和使用技巧。

基础很重要,所以会不断的回顾,js 的基础知识;

1.在检测数据类型的时候:
基本数据类型:可以使用 typeof 来进行检测;
引用数据类型:使用typeof 检测的数据,只能看到是object ,无法继续检测,
需要使用 instanceof 来进行检测;

2.垃圾回收机制:

  • 使用标记清除;(所有变量开始都会加上标记,在经过环境变量的时候,垃圾收集器会去除环境变量中以及被环境变量引用的的变量)
  • 还有一种是引用计数,通过对变量的引用次数来进行计数统计,将使用小的变量去除;

Object

3.使用字面创建一个对象;
在这里插入图片描述
在这里插入图片描述
这里值得一提的是字面量的的属性也是可以添加引号的

Array 的知识;

数组中的 arr.length 的length 属性不只是可读的属性,可以进行编辑
在这里插入图片描述

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

数组中使用 isArray 来检测来检测数组;instanceof 在多个框架中的时候会出错:>?
在这里插入图片描述
出栈的方法( push, pop ); 队列的方法( unshift, shift )


所有对象都具有 toLocaleString()、toString()和 valueOf()方法

  • 这里的toString( )默认使用, 分割 ,而join() ,可以传入参数,来确定分割的方式;
    两者等价


var colors = ["red", "green", "blue"];
colors.toString();//与下面的join的用法是等价的
colors.valueOf();

alert(colors.join(",")); //red,green,blue
alert(colors.join("||")); //red||green||blue 

valueOf()的使用, 可能也就Date中与Date.now()的功能比较相似吧

Array数组实例对象。
Boolean布尔值。
Date以毫秒数存储的时间值,从 UTC 1970 年 1 月 1 日午夜开始计算。
Function函数本身。
Number数字值。
Object 对象本身。这是默认设置。
String字符串值。

=====================================

  • 重排序的方法: reverse() 与 sort(), 使用sort 的话,需要使用 " 1, 0 -1 ,"值,来比较大小;
    传入回调函数;

concat(); 将数组进行拼接;

  • indexOf 查找, 以及 lastIndexOf() ,一个是从前找,一个是从后找, 这个找是指
    值value

的项在数组中的位置,或者在没找到的情况下返回-1

在这里插入图片描述


以及类型
Date , RegExp, Function

对于函数, 函数名就是一个指针, 即指向函数对象的一个地址
函数内部属性
在函数内部,有两个特殊的对象:arguments 和 this。其中,arguments 在第 3 章曾经介绍过,
它是一个类数组对象,包含着传入函数中的所有参数。虽然 arguments 的主要用途是保存函数参数,
但这个对象还有一个名叫 callee 的属性,该属性是一个指针,指向拥有这个 arguments 对象的函数。
请看下面这个非常经典的阶乘函数。


以及对于基本类型的包装
Number , String , Boolean


Math 方法


函数的属性与方法:

  • 函数也是一个对象, 所以也拥有属性与方法
    每个函数都包含两个属性, length与prototype,
    其中 length, 表示参数的个数 , prototype有关于继承,
  • 包含两个方法: call(), apply (), (准确来说是三个还有一个bind())都是用于改变this的指向, 即函数所运行的环境
function sayName(name){
 alert(name);
}
function sum(num1, num2){
 return num1 + num2;
}
function sayHi(){
 alert("hi");
}
alert(sayName.length); //1
alert(sum.length); //2
alert(sayHi.length); //0 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值