11.1JS笔记_数据结构手写笔记

11.1JS笔记_数据结构手写笔记11.1JS笔记

大家好,又见面了,我是你们的朋友全栈君。

 

 

1、js的数据类型分为基本和引用,基本(string、undefined、null、number,boolean),引用(object–>array、function、json等)

2、基本数据类型和引用数据类型的区别:前者是简单的赋值,后者是将引用地址赋给变量

  var a=123;

  var b={

     ”name”=”zhang”

  }   json

  var c=[“ni”,23]   数组

  var d=function(){

     console.log(12)

  }   函数

3、堆内存:存放代码块的,有两种方式

(1)对象以键值对的形式存放

(2)函数以字符串的形式存放

11.1JS笔记_数据结构手写笔记

案例:

11.1JS笔记_数据结构手写笔记

 

 11.1JS笔记_数据结构手写笔记

11.1JS笔记_数据结构手写笔记

引用数据类型的赋值,是把引用地址赋给它,在修改属性的时候,通过地址查找并修改

4、在js中函数类型有2种

(1)普通函数

(2)类

5、对象 object:对象里的数据以键值对的形式存在

(1)单例模式

var zhang={

  ”name”=”zhangsan”

  ”age”=23

}把变量zhang叫做命名空间

单例模式的优势:每个对象都是独立的,即便属性的名字都一样,不会互相干扰,方便现在流行的开发模式

“模块化开发”,如果需要使用里面的属性,用点运算符(.),如zhang.name或zhang[name],判断一个shuxing

是不是这个对象的用in运算符,如”name”in zhang,如果遍历这个对象,用for(attr in zhang){}

劣势:不可以批量生产,只能一个个去创建

(2)工厂模式

function A(name,age){

  var obj={

    ”name”=name,

    ”age”=age

  }

  return  obj;

}

var zhang=A(“张三”,23)

var lisi=A(“李四”,24)

console.log(lisi)

这种模式叫做函数封装

优势:可以批量生产,减少代码的冗余,提高代码的重复利用(高密度低耦合),没有继承和多态

(3)构造函数

要求:函数名首字母bixudaxie

     里面的属性必须加this

   函数调用的时候必须用关键字new

11.1JS笔记_数据结构手写笔记

person:类    zhang:实例

万物皆对象,对象的特征有属性和方法

string的类是String

数组的对象是Array

对象的对象的Object

构造函数里的this指向实例对象,构造函数里有了实例和类的概念,并且实例和实例都是独立的个体,我们把它叫做实例识别

构造函数里的对象都是私有的,各个实例对象之间没有公共的属性,为了实例的对象拥有公共的属性,所以js使用了prototype

(原型)这个属性,他的属性值是一个对象,我们可以把这个公共的属性放在prototype上

6、原型分析  prototype

(1)每个函数数据类型(普通函数,类)都有一个prototype的属性,并且这个属性值是一个对象数据类型

(2)每一个prototype都有一个constructor属性,并且这个属性值是当前函数或类本身

(3)每一个对象数据类型(实例、普通对象、prototype)都天生具有一个__proto__属性,它的属性值是当前

实例所属类的原型

7、原型链:duixiang.shuxing的时候,首先看这个属性是不是私有的,私有的就直接使用,如果私有的没有就用

公有的,公有的有就使用,没有就按照__proto__找他的类上有没有,直到找到基类object为止,如果object没有

就undefined,这种查找机制叫做原型链

 

8、作用域和堆内存的区别:作用域是执行函数的时候产生的,函数执行的时候会开辟一个新的内存空间,叫做

栈内存(环境、作用域)

而堆内存是数据类型在赋值的时候会开辟一个新的内存空间,它是存放代码块的数据库

 

 

转载于:https://www.cnblogs.com/qinlinkun/p/9905349.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107213.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 好用的免杀远控_延迟低的远程控制软件

    好用的免杀远控_延迟低的远程控制软件能测试的,私联系。

    2025年8月2日
    5
  • vue项目解决跨域问题_跨域的解决方案

    vue项目解决跨域问题_跨域的解决方案在项目根目录下新建vue.config.js文件,里面内容如下module.exports={devServer:{proxy:{‘/api’:{target:’http://localhost:8080/’,//跨域请求地址changeOrigin:true,//开启代理,是否实现跨域pathRewrite:{.

    2022年10月1日
    4
  • java和mysql实现学生成绩管理系统(学生信息管理系统课程设计)

    Java+MySQL实现学生管理系统实现一个学生管理系统,方便老师对学生信息进行统计管理用户登录功能学生管理功能完善界面交互数据持久可靠设计思路使用Java作为开发语言,MySQL作为数据库,JavaSwing做图形界面;分层解耦,分为entity(实体层,映射数据库具体表)、dal(数据库访问,对数据库工具类封装)、dao(持久层,同数据库交互)、gui…

    2022年4月12日
    505
  • Unity3d场景快速烘焙【2020】

    Unity3d场景快速烘焙【2020】很多刚刚接触Unity3d的童鞋花了大量的时间自学,可总是把握不好Unity3d的烘焙,刚从一个坑里爬出来,又陷入另一个新的坑,每次烘焙一个场景少则几个小时,多则几十个小时,机器总是处于假死机状态,半天看不到结果,好不容易烘焙完了,黑斑、撕裂、硬边、漏光或漏阴影等缺陷遍布,惨不忍睹,整体效果暗无层次,或者苍白无力,灯光该亮的亮不起来,该暗的暗不下去,更谈不上有什么意境,痛苦的折磨,近乎失去了信心,一个团队从建模到程序,都没什么问题,可一到烘焙这一关,就堵得心塞,怎么也搞不出好的视觉效果,作品没法及时向用户交

    2022年6月11日
    30
  • Java并发编程之ConcurrentSkipListMap

    Java并发编程之ConcurrentSkipListMapConcurrentSkipListMap数据结构抓住了数据结构,对于理解整个ConcurrentSkipListMap有很重要的作用,其实,通过源码可知其数据结构如下。可以看到ConcurrentSkipListMap的数据结构使用的是跳表,每一个HeadIndex、Index结点都会包含一个对Node的引用,同一垂直方向上的Index、HeadIndex结点都包含了最底层的Node结点的…

    2025年5月22日
    4
  • SQL_DISTINCT 语句详细用法

    SQL_DISTINCT 语句详细用法一测试数据构建二基本使用 单独使用 三聚合函数中的 DISTINCT 下面全部是在 MySQL 的环境下进行测试的 一测试数据构建数据表跟数据 SETFOREIGN KEY CHECKS 0 Tablestructu distinct

    2026年1月28日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号