常见知识点总结

文章目录

      • for of和for in
        • 区别
      • 同源策略
      • 跨域资源共享
        • 跨域问题
        • 解决跨域
          • jsonp
          • cors方式
          • nginx代理方式
      • apply,bind,call
        • 相同点
        • 不同点
      • js判断数据类型的方式
        • typeof
        • instanceof
        • constructor
        • Object下的toString.call()方法
      • 闭包
        • 闭包的作用
        • 注意
        • 闭包的生命周期
      • body-parser

for of和for in

都是常见的循环结构,允许我们遍历对象的属性或数组、字符串、Map、Set等可迭代对象的元素。
for in循环遍历的是对象的属性名,而不是属性值;会枚举出对象自身以及原型链上的所有可枚举属性,(除非该对象使用Object.prototype的hasOwnProperty方法来过滤掉原型链上的属性)
for of循环用于遍历可迭代对象的元素,for of循环直接遍历的是值,而不是键
for of循环遍历的是可迭代对象的元素值,而不是属性名。

区别

for in遍历的是对象的属性名,for of遍历的是可迭代对象的元素值
for in会遍历对象自身以及原型链上的属性,而for of只遍历对象自身的元素
for in适用于普通对象,for of适用于可迭代对象(数组,字符串,Map,Set)

同源策略

源的定义:如果两个url的协议,端口,主机都相同,则这两个url是同源的
在浏览器中,同源策略(Same-origin_policy)是一个重要的安全策略。用于限制不同源之间的资源交互。

跨域资源共享

是一种基于 HTTP 头的机制,该机制通过允许服务器指定允许浏览器访问的源来加载自己的资源。是一种基于 HTTP 头的机制,该机制通过允许服务器指定允许浏览器访问的源来加载自己的资源。

跨域问题

不同源之间的资源交互,就会存在跨域问题。比如:请求的接口不同源导致跨域

解决跨域
jsonp

原理是利用script标签不受浏览器同源策略的限制,和后端一起解决跨域问题
具体:在客户端创建一个script标签,然后把请求后端的接口拼接一个回调函数名称作为参数传给后端,并且赋值给script标签的src属性,然后把script标签添加到body中,当后端收到客户端的请求时,会解析得到回调函数的名称,然后把数据和回调函数名称拼接成函数调用的形式返回

cors方式

cors是跨域资源共享,是一种http头的机制,该机制通过允许服务器标示除了它自己以外的其他origin(域,协议和端口),使得浏览器允许这些origin访问加载自己的资源,服务端设置了Access-Control-Allow-Origin就开启了cors

nginx代理方式

nginx通过反向代理解决跨域,利用了服务器请求服务器不受浏览器同源策略的限制实现的。

apply,bind,call

相同点
  1. apply 、 call 、bind 三者都是用来改变函数的this对象的指向;
  2. apply 、 call 、bind 三者都可以利用后续参数传参;
不同点

在接受参数方面:call和bind接收多个参数,apply接受一个数组
call/apply 会让函数执行的
call后面参数是依次逗号分隔传入
apply:一个参数数组,数组成员是依次传入
bind 不会执行前面的函数!返回值:新的函数 和原来那个函数长的一样,内部this已经被我们固定

js判断数据类型的方式

typeof

通常判断基本数据类型,返回表示数据类型的字符串
注意:使用typeof来判断null和引用类型的实例 返回的结果都是 ‘object’。

instanceof

a instanceof A ,判断参照对象(大写字母A)的prototype属性所指向的对象是否在被行测对象a的原型链上。
instanceof 只能用来判断两个对象是否属于实例关系,而不能判断一个对象实例具体属于哪种类型。
对于number,string,boolean这三种基本数据类型,只有通过构造函数才能检测出

constructor

constructor是原型对象的属性指向构造函数,可以检测出除了undefined和null的9种类型(因为它两没有原生构造函数)

Object下的toString.call()方法
Object.prototype.toString.call();
console.log(toString.call(123));          //[object Number]
console.log(toString.call('123'));        //[object String]
console.log(toString.call(undefined));    //[object Undefined]

闭包

闭包的作用

1.使用函数内部的变量在函数执行完以后,仍然存活在内存中(延长了局部变量的生命周期)
2.让函数外部可以操作(读写)到函数内部的数据(变量/函数)

注意

在函数外不能直接访问函数内部的局部变量
函数执行完之后,函数内部声明的局部变量一般不存在,存在于闭包中的变量才可能存在

闭包的生命周期

产生:在嵌套内部函数定义执行完时就产生了(不是在调用)
死亡:在嵌套的内部函数成为垃圾对象时

body-parser

中间件body-parser的作用是解析POST请求的请求体。然后我们可以通过req.body,获取到请求参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/24780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qsort函数

学习c语言的过程中少不了的就是排序&#xff0c;例如冒泡排序&#xff08;不清楚的同学可以翻找一下之前的文章&#xff09;&#xff0c; 我们这里将冒泡排序作为一个自定义函数来呈现一下 #include<stdio.h>void bubble_sort(int arr[], int len) {for (int i 0; i &…

【Vue】mutations

文章目录 一、定义mutations二、组件中提交 mutations三、带参数的 mutations 一、定义mutations mutations是vuex中的对象&#xff0c;这个对象可以定义在当前store的配置项中 const store new Vuex.Store({state: {count: 0},// 定义mutations// mutations是一个对象&#x…

自然语言处理(NLP)—— rasa的测试

1. 测试 Rasa NLU 模型 运行 rasa test nlu 命令会测试你的 Rasa NLU 模型。这个命令主要做以下几件事情&#xff1a; 1.1 意图识别测试 检查模型在识别用户意图方面的性能。这包括每个意图的准确率、召回率和 F1 得分。 1.2 实体提取测试 检查模型在识别和提取预定义实体方面…

为什么先遍历背包再遍历物品,求的是排列数;先遍历物品再遍历背包,求的是组合数?

完全背包问题简介 在完全背包问题中&#xff0c;每个物品可以被选择任意次。我们通常使用动态规划来求解这个问题&#xff0c;定义 dp[j] 为填满容量为 j 的背包的方法数。 先遍历背包再遍历物品&#xff08;排列数&#xff09; 先遍历背包再遍历物品的逻辑是&#xff1a;对…

Progressive Feature Fusion Framework Based on Graph Convolutional Network

以Resnet50作为主干网络&#xff0c;然后使用GCN逐层聚合多级特征&#xff0c;逐级聚合这种模型架构早已不新鲜&#xff0c;这篇文章使用GCN的方式对特征进行聚合&#xff0c;没有代码。这篇文章没有过多的介绍如何构造的节点特征和邻接矩阵&#xff0c;我觉得对于图卷积来说&a…

自动化Reddit图片收集:Python爬虫技巧

引言 Reddit&#xff0c;作为一个全球性的社交平台&#xff0c;拥有海量的用户生成内容&#xff0c;其中包括大量的图片资源。对于数据科学家、市场研究人员或任何需要大量图片资源的人来说&#xff0c;自动化地从Reddit收集图片是一个极具价值的技能。本文将详细介绍如何使用…

SCSS中的结构化伪类选择器详解与示例

SCSS&#xff0c;作为Sass的一种语法版本&#xff0c;是一种强大的CSS预处理器&#xff0c;它引入了许多便利的功能来增强CSS的编写能力。其中&#xff0c;:nth-child, :only-child, :first-child, :last-child, 和 :nth-last-child 是CSS选择器中的结构化伪类&#xff0c;它们…

Sass 使用指南:让 CSS 编程更高效、更强大

Sass&#xff08;Syntactically Awesome Style Sheets&#xff09;是一种 CSS 预处理器&#xff0c;通过它&#xff0c;开发者可以使用变量、嵌套、混合和函数等更高级的功能来编写更简洁、更易于维护的样式代码。Sass 可以被编译成纯 CSS&#xff0c;使得你的项目能够在所有浏…

多个p标签一行展示,溢出隐藏

一开始&#xff0c;我是让div包裹多个p标签&#xff0c;并让div“flex”布局&#xff0c;且单行溢出隐藏&#xff0c;可是发现当父元素或当前元素有flex时&#xff0c;text-overflow: ellipsis;是不生效的 大多数解决办法都是&#xff0c;不要flex&#xff0c;或者给div下的每个…

【启程Golang之旅】网络编程与反射

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…

Java进阶_多态特性

生活中的多态 多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口&#xff0c;使用不同的实例而执行不同操作&#xff0c;如图所示&#xff1a; 现实中&#xff0c;比如我们按下 F1 键这个动作&#xff0c;同一个事件发生在不同的对象上会产生不同的结果。…

达梦8 探寻达梦排序机制之一:传统排序机制(SORT_FLAG=0)

测试版本&#xff1a;--03134283938-20221019-172201-20018 达梦的排序机制由四个dm.ini参数控制&#xff1a; SORT_BUF_SIZE 100 #maximum sort buffer size in MegabytesSORT_BLK_SIZE 1 #ma…

力扣23. 合并 K 个升序链表

给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 示例 1&#xff1a; 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#xff1a;[1,1,2,3,4,4,5,6] 解释&#xff1a;链表数组如下&#…

自动化立体库集成技术--含(思维导图)

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 随着科技的不断进步和物流行业的快速发展&#xff0c;自动化立体库集成技术已成为现代物流仓储的重要支撑。 它利用先进的自动化设备和智能化管理…

[leetcode hot 150]第一百三十七题,只出现一次的数字Ⅱ

题目&#xff1a; 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 由于需要常数级空间和线性时间复杂度…

http协议,tomcat的作用

HTTP 概念:Hyper Text Transfer Protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则。 特点: 1.基于TCP协议:面向连接&#xff0c;安全 2. 基于请求-响应模型的:一次请求对应一次响应 3HTTP协议是无状态的协议:对于事务处理没有记忆能…

tsconfig.json和tsconfig.app.json文件解析(vue3+ts+vite)

tsconfig.json {"files": [],"references": [{"path": "./tsconfig.node.json"},{"path": "./tsconfig.app.json"}] }https://www.typescriptlang.org/tsconfig/#files files: 在这个例子中&#xff0c;files 数…

git-生成SSH密钥

git-生成SSH密钥 1 打开命令窗口2 操作 1 打开命令窗口 选择"Git Bash Here"&#xff0c;打开Git命令窗口 2 操作 查看当前用户名称 git config user.name配置你的邮箱&#xff0c;“6xxxqq.com” 填写自己的邮箱 git config --global user.email "6xxxqq…

认识Java中的String类

前言 大家好呀&#xff0c;本期将要带大家认识一下Java中的String类&#xff0c;本期注意带大家认识一些String类常用方法&#xff0c;和区分StringBuffer和StringBuilder感谢大家收看 一&#xff0c;String对象构造方法与原理 String类为我们提供了非常多的重载的构造方法让…

计算机网络基础-VRRP原理与配置

目录 一、了解VRRP 1、VRRP的基本概述 2、VRRP的作用 二、VRRP的基本原理 1、VRRP的基本结构图 2、设备类型&#xff08;Master&#xff0c;Backup&#xff09; 3、VRRP抢占功能 3.1&#xff1a;抢占模式 3.2、非抢占模式 4、VRRP设备的优先级 5、VRRP工作原理 三…