JavaScript基础

简介: 本节讲解JavaScript基础核心知识:涵盖值类型与引用类型区别、typeof检测类型及局限性、===与==差异及应用场景、内置函数与对象、原型链五规则、属性查找机制、instanceof原理,以及this指向和箭头函数中this的绑定时机。重点突出类型判断、原型继承与this机制,助力深入理解JS面向对象机制。(238字)

1 变量类型和计算

1.1 值类型和引用类型的区别?

  1. 值类型:每个变量都会存储各自的值。不会相互影响
  2. 引用类型:不同变量的指针执行了同一个对象(数组,对象,函数)

    1.2 typeof可以及检测的数据类型有哪些?

    Note
    ● 基本数据类型:Undefined null bool string number
    ● 关键点:typeof只能区分值类型,不能区分引用类型
    ● JS中的基本数据类型:null, undefined, bool, string, number(typeof可以区分除了null以外的四种值类型)
    ● typeof 6种类型:Object({},[],null), Undefined, Boolean, Number, Function, String
    ● typeof可以区分值类型,typeof null = Object

    1.3 JS中===和==的区别?

    1.3.1 区别?

    == 会进行强制类型转换之后再比较,=== 不会进行强制类型转换的

    1.3.2 应用场景?

  3. (用于判断对象属性是否存在):if (obj == null) ===>>> 等价于if (obj == null || obj == undefined),可以简化代码,其他情形都使用===进行比较
  4. 用于判断函数的参数是否存在: function(a, b){ if(a == null) { // ... }}
  5. 对于函数内部或者是一个对象的参数进行判断只会出现undefined, 而不会报错(慎用)

    1.3.3 其他?

    js中类型转换为false的有哪些(6种):null, undefined, NaN, '', false, 0

    1.4 JS中的内置函数有哪些?

    Note
    ● 内置函数: Object Array Boolean Number String Function Date RegExp Error
    ● 内置对象:Math, JSON

    2 原型和原型链

    2.1 原型链的5条规则

  6. 所有的引用类型(数组,对象,函数),都是具有对象特性的,即可以自由扩展属性(除了null以外)
  7. 所有的引用类型(数组、对象、函数),都有一个proto 属性(隐式原型),这个属性的值是一个普通对象
  8. 所有的函数,都有一个prototype属性(显式原型),这个属性值是一个普通的对象
  9. 所有的引用类型(数组、对象、函数),proto的属性值指向(完全相等)它的构造函数的“prototype”的属性值
  10. 当试图得到一个对象的某一个属性的时候,如果一个对象本身没有这个属性的话,就会去它的proto( 也就是它的构造函数中去寻找这个属性)

    2.2 JS中寻找对象属性的过程

  11. 当一个对象没有这个toString()这个属性的时候,就回去自己的隐式原型proto中去寻找这个属性,也就是去自己额构造函数的显示原型prototype中寻找这个属性(对象自身的隐式原型就是他的构造函数的显式原型)
  12. 发现FOO.prototype中也没有这个toString属性,这也是一个对象,name就去这个对象{}的proto中寻找toString()这个属性

    2.3 instanceof的作用?

    是用于判断【引用类型】属于哪个【构造函数】的方法
    Note
    总结:f.proto 一层一层向上寻找,能否找到FOO.prototype,找到为true,否则为false

    2.4 对this的理解?

  13. 作为构造函数执行
  14. 作为对象属性执行
  15. 作为普通函数执行
  16. call apply bind

    2.5箭头函数中的this

    首先,箭头函数没有自己的this,箭头函数中的this是在定义函数的时候绑定,它会捕获其所在的上下文的this作为自己的this,而不像普通函数那样是在执行函数的时候绑定。
相关文章
|
2月前
|
机器学习/深度学习 人工智能 缓存
让AI评测AI:构建智能客服的自动化运营Agent体系
大模型推动客服智能化演进,从规则引擎到RAG,再到AI原生智能体。通过构建“评估-诊断-优化”闭环的运营Agent,实现对话效果自动化评测与持续优化,显著提升服务质量和效率。
1400 86
让AI评测AI:构建智能客服的自动化运营Agent体系
|
1月前
|
存储 自然语言处理 测试技术
一行代码,让 Elasticsearch 集群瞬间雪崩——5000W 数据压测下的性能避坑全攻略
本文深入剖析 Elasticsearch 中模糊查询的三大陷阱及性能优化方案。通过5000 万级数据量下做了高压测试,用真实数据复刻事故现场,助力开发者规避“查询雪崩”,为您的业务保驾护航。
1335 89
|
29天前
|
存储 人工智能 运维
一行代码实现智能异常检测:UModel PaaS API 架构设计与最佳实践
阿里云 UModel PaaS API 发布:通过 Table + Object 双层抽象,屏蔽存储差异、自动处理字段映射与过滤条件,让每一个实体都成为一个‘可调用的对象’,真正实现‘以实体为中心’的智能可观测。
755 116
|
Web App开发 前端开发 JavaScript
开启这些隐藏功能,让你的Chrome更加强大!
开启这些隐藏功能,让你的Chrome更加强大!
351 0
|
9天前
|
供应链 容器
什么是code128码?
Code 128码是一种高密度条形码,支持全ASCII字符,广泛用于物流、运输和供应链管理。它分为A、B、C三个子集,可编码字母、数字及控制符,具有高密度、小空间优势,适用于复杂数据编码需求。
295 3
|
6天前
|
人工智能 前端开发 API
Google发布50页AI Agent白皮书,老金帮你提炼10个核心要点
老金分享Google最新AI Agent指南:让AI从“动嘴”到“动手”。Agent=大脑(模型)+手(工具)+协调系统,可自主完成任务。通过ReAct模式、多Agent协作与RAG等技术,实现真正自动化。入门推荐LangChain,文末附开源知识库链接。
569 119
|
3天前
|
人工智能 自然语言处理 API
n8n:流程自动化、智能化利器
流程自动化助你在重复的业务流程中节省时间,可通过自然语言直接创建工作流啦。
362 4
n8n:流程自动化、智能化利器

热门文章

最新文章