
Web前端
文章平均质量分 62
让你五行代码
芸芸代码写浮生,侃侃字句话编程。
展开
-
怎样使用ref实现页面上的元素和内容的引用?
ref 用来辅助开发者在不依赖于 jQuery 的情况下,获取 DOM 元素或组件的引用。每个 vue 的组件实例上,都包含一个 $refs 对象,里面存储着对应的 DOM 元素或组件的引用。默认情况下,组件的 $refs 指向一个空对象。转载 2023-08-23 11:11:15 · 193 阅读 · 0 评论 -
前端路由是什么意思?怎样实现一个简单的前端路由?
路由(英文:router)就是对应关系, 路由分为前端路由和后端路由, 通俗的讲前端路由就是,Hash 地址与组件之间的对应关系。SPA 指的是一个 web 网站只有唯一的一个 HTML 页面,所有组件的展示与切换都在这唯一的一个页面内完成。步骤3:在组件的结构中声明如下3 个链接,通过点击不同的链接,切换浏览器地址栏中的Hash 值。结论:在 SPA 项目中,不同功能之间的切换,要依赖于前端路由来完成!步骤2:通过标签的is 属性,动态切换要显示的组件。此时,不同组件之间的切换需要通过前端路由来实现。转载 2023-06-27 13:50:49 · 117 阅读 · 0 评论 -
Ajax怎样向服务器发送请求和接收服务器信息?
为了大家更好的理解这两个属性的使用,下面创建一个服务器端的文件index.php,用于输出字符串,然后在浏览器端index.html中向服务器端发送请求,并在控制台输出状态值。在上述声明中,content用于指定要发送的数据,其值可为DOM对象的实例、输入流或字符串,一般与POST请求类型配合使用,需要注意的是,如果请求声明为同步,该方法将会等待请求完成或者超时才会返回,否则此方法将立即返回。需要注意的是,Ajax中的statusText属性,仅当数据发送并接收完毕后,才可以获取当前请求的响应状态。转载 2023-06-27 11:36:36 · 455 阅读 · 0 评论 -
如何知道一个变量或值的数据类型?
如果单击“取消”按钮,则age的值为null,类型为 object;在上述代码中,“typeofa”的返回结果是string,在与字符串string 比较时,结果为true,表示a是string类型;在上述示例中,typeof检测 null 值时返回的是 object,而不是 null,这是 JavaScript 最初实现时的历史遗留问题,后来被ECMAScript沿用下来。typeof运算符的返回结果是一个字符串,可以使用比较运算符“==”来判断typeof返回的检测结果是否符合预期,示例代码如下。转载 2023-06-26 11:19:47 · 235 阅读 · 0 评论 -
Ionic指令式组件和服务式组件
代理类服务组件在使用上与普通服务组件有所差别,这类组件通常含有SgetByHandle(delegateHandle)方法——该方法可以用来获取页面上对应指令式组件的操作对象,继而达到使用代码控制这些组件外观和行为的目的。ionic 服务式组件本质上是AngularJS服务对象,可以在AngularJS代码中以依赖注入的方式被应用,用于直接创建页面视图组件或执行与页面视图组件交互的任务。以元素形式使用的指令都带有“ion-”前缀,例如使用ion-tabs指令实现一个功能完备的选项卡,示例代码如下。转载 2023-06-20 13:56:54 · 213 阅读 · 0 评论 -
一次弄懂事件流和事件冒泡
向水里面扔一块石头,石头下降的过程就可以理解为事件冒泡,为从最顶层向事件发生的最具体元素(目标点)的捕获过程;事件流描述的是从页面中接收事件的顺序。事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即 DOM 事件流。事件冒泡: IE 最早提出,事件开始时由最具体的元素接收,然后逐级向上传播到到 DOM 最顶层节点的过程。事件捕获: 网景最早提出,由 DOM 最顶层节点开始,然后逐级向下传播到到最具体的元素接收的过程。事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即 DOM 事件流。转载 2023-06-20 11:53:51 · 84 阅读 · 0 评论 -
Dom事件流的顺序是什么?如何理解事件委托?
在前端中,DOM事件流描述了事件在文档对象模型(DOM)中的传播顺序。转载 2023-06-20 11:51:14 · 245 阅读 · 0 评论 -
Vue技术在前端开发中扮演着什么角色?
Vue使用虚拟DOM来提高性能。虚拟DOM是Vue在内存中维护的一个轻量级的副本DOM,用于追踪和计算最小化的DOM操作。Vue提供了一组内置的指令和过滤器,用于处理视图和数据的交互。Vue配备了官方支持的路由器和状态管理库(Vue Router和Vuex),用于处理应用程序的导航和状态管理。这些库提供了强大的工具和模式,帮助开发者构建复杂的单页面应用程序,并管理应用程序的路由和全局状态。总之,Vue在前端开发中扮演着构建用户界面、实现组件化开发、提供响应式数据绑定、优化性能和处理路由和状态管理等角色。原创 2023-06-19 11:49:56 · 341 阅读 · 0 评论 -
JSP有哪些内置对象?分别具有什么作用?
6.config: 表示当前JSP页面的配置信息。可以使用它来获取JSP页面的初始化参数、ServletContext等信息。可以使用它来获取客户端提交的表单数据、URL参数、HTTP头等信息。可以使用它来存储和获取全局信息,比如数据库连接池、全局配置等。可以使用它来获取其他内置对象、页面范围的属性等信息。可以使用它来设置响应的状态码、HTTP头、响应的内容等信息。可以使用它来存储和获取用户相关的信息,比如登录信息、购物车信息等。可以使用它来引用当前JSP页面的属性、方法等信息。5.out: 表示输出流。转载 2023-06-13 13:39:27 · 234 阅读 · 0 评论 -
Spring Boot框架具有哪些优点和缺点?
例如,在Web开发时,只需在构建项目时选择对应的Web场景依赖启动器spring-boot-starter-web,Spring Boot项目便会自动导入spring-webmvc、spring-web、spring-boot-starter-tomcat等子依赖,并自动下载和获取Web开发需要的相关JAR包。在构建Spring应用时,我们只需要添加相应的场景依赖,Spring Boot就会根据添加的场景依赖自动进行配置,在无须额外手动添加配置的情况下快速构建出一个独立的Spring应用。转载 2023-06-12 11:53:09 · 526 阅读 · 0 评论 -
CSS中怎么区别浮动和定位?
在demo1中,使用浮动的知识对页面进行了布局,也就是图1-13中的header、aside、section、footer区域,然后使用绝对定位知识创建了一个浮动的div元素floatdiv。需要注意的是,position:absolute会导致元素脱离文档流,被定位的元素等于在文档中不占据任何位置,在另一个层呈现。其实浮动的本意是用来解决图片和文字的排版问题,但是由于它十分好用,所以被大部分开发者应用到了网页布局中,并成为了公认布局的一种方式。用浏监器打开demo1.页面效果如图。转载 2023-06-06 14:10:31 · 69 阅读 · 0 评论 -
巧用text-shadow为文字添加阴影效果
在上面的语法格式中,h-shadow用于设置水平阴影的距离,v-shadow用于设置垂直阴影的距离,blur用于设置模糊半径,color用于设置阴影颜色。上述代码中,第9行代码用于为文字添加阴影效果,设置阴影的水平和垂直偏移距离为10px,模糊半径为10px,阴影颜色为红色。阴影的水平或垂直距离参数可以设为负值,但阴影的模糊半径参数只能设置为正值,并且数值越大阴影向外模糊的范围也就越大。在上面的代码中,为文本依次指定了红色和绿色的阴影效果,并设置了阴影的位置和模糊数值。阴影叠加效果如下图所示。转载 2023-06-06 14:01:45 · 449 阅读 · 0 评论 -
怎么实现数组和对象的解构赋值?【详细演示】
等号左边的name变量匹配 person对象中的name属性,age变量匹配person对象中的age属性,所以name变量的值为zhangsan,age变量的值为20。等号左边中括号里的变量与等号右边数组中的值实际上是一一对应的关系,即变量a的值是1.变量b的值是2,变量e的值是3。这种形式支持变量的名字和对象中属性的名字不一样的情况,等号左边的大括号代表对象解构,它的语法与对象类似,通过大括号中的属性匹配对象中的属性,示例代码如下。由此可见,对象解构实际上是属性匹配,变量的名字匹配对象中属性的名字。转载 2023-05-31 14:23:18 · 285 阅读 · 0 评论 -
如何进行Redis客户端的设置?【图文教程】
GitHub上的大神编写了Redis的图形化桌面客户端,地址:https://github.com/uglide/RedisDesktopManager。Redis默认有16个仓库,编号从0至15. 通过配置文件可以设置仓库数量,但是不超过16,并且不能自定义仓库名称。安装完成Redis,我们就可以操作Redis,实现数据的CRUD了。-h 127.0.0.1:指定要连接的redis节点的IP地址,默认是127.0.0.1。-p 6379:指定要连接的redis节点的端口,默认是6379。转载 2023-05-31 14:14:22 · 334 阅读 · 0 评论 -
前端中z-index层叠等级属性是什么意思?
请注意,z-index属性只在具有定位(position)属性的元素上生效,如position: absolute、position: relative或position: fixed。如果元素没有显式地设置z-index值,则其默认值为auto,这意味着元素将遵循其在HTML结构中的出现顺序。box1元素具有最低的z-index值,box3元素具有最高的z-index值。它定义了元素在叠加层中的顺序,具有较高z-index值的元素将位于较低z-index值的元素之上。原创 2023-05-30 14:05:00 · 288 阅读 · 0 评论 -
会话跟踪技术是干什么的?可以实现什么功能?
会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在 一次会话中可以包含多次请求和响应。用实际场景来理解下会话,比如在我们访问京东的时候,当打开浏览器进入京东首页后,浏览器和京东的服务器之间就建立了一次会话,后面的搜索商品,查看商品的详情,加入购物车等都是在这一次会话中完成。网站登录页面的记住我功能:当用户登录成功后,勾选记住我按钮后下次再登录的时候,网站就会自动填充用户名和密码,简化用户的登录操作,多次登录就会有多次请求,他们之间也涉及到共享数据。转载 2023-05-30 11:50:22 · 109 阅读 · 0 评论 -
Redis中有哪些阻塞点以及如何解决?
对于慢查询命令,应该避免在生产环境中执行复杂的查询,或者将查询操作分解成多个较小的操作。通过使用事务,可以确保多个写入操作以原子方式执行,从而避免了并发写入时可能出现的阻塞问题。1.阻塞操作:某些Redis操作可以导致阻塞,例如阻塞式的读取命令(如BLPOP、BRPOP)或慢查询命令(如SORT、KEYS)。解决方法:使用Redis的事务(Transaction)功能可以将多个写入操作打包成一个原子性的操作序列。2.高并发写入:在高并发写入的情况下,当多个客户端同时请求写入操作时,可能会出现阻塞。原创 2023-05-29 14:02:51 · 493 阅读 · 0 评论 -
JavaScript中数字型的进制、范围与特殊值【详细说明】
数字型有3个特殊值,分别是Infinity(无穷大)、-Ininity(无穷小)和NaN(Not a Number,非数值)。若要判断一个变量是否为非数字的类型,可以用isNaN来进行判断,它会返回一个布尔值,返回 true表示非数字,返回 false 表示是数字,示例代码如下。在一般情况下,数字都是使用十进制来表示的。在输出结果中,使用了科学计数法来表示,在JavaScript中可以使用科学计数法来表示数字。(2)在数字开头加上0x,表示十六进制数。(1)在数字开头加上0,表示八进制数。转载 2023-05-22 11:49:59 · 320 阅读 · 0 评论 -
Web服务器具体怎样配置虚拟主机?【详细过程】
Apache在读取分布式配置文件时,会从磁盘根目录一直查找到当前访问的目录,如果这些目录下有“htaccess”文件就会被读取,子目录的配置会覆盖上级目录的配置。缺点在于,读取这些文件增加了服务器的负担,会降低性能。在安装PHP时,已经对Directorylndex进行了配置,Apache会在当前访问的目录下依次查找index.php和index.himl,如果两个文件都不存在,就会开启文件列表。当用户访问某个目录时,Apache会查找该目录的配置和所有上级目录的配置,该目录的配置会覆盖上级目录的配置。转载 2023-05-22 11:25:51 · 117 阅读 · 0 评论 -
前端Redis中有哪些阻塞点?如何解决?
将与Redis的通信转移到后台任务或消息队列中进行处理,以减少前端应用程序与Redis之间的直接交互。如果前端应用程序需要执行一些需要等待Redis响应的同步操作,例如阻塞式命令(如BRPOP),那么在等待Redis响应期间,前端线程将被阻塞。总之,通过采取适当的措施,如异步操作、数据缓存、水平扩展和异步通信,可以有效地减少前端与Redis之间的阻塞点,并提高应用程序的性能和响应能力。如果Redis服务器的负载过高,例如处理大量并发请求或执行复杂的操作,可能会导致响应时间延长或出现阻塞。原创 2023-05-22 10:47:58 · 1068 阅读 · 0 评论 -
怎么理解前端中的拖曳?拖曳交互过程解读
上述代码中,event表示事件处理函数的事件源对象,setData(format,data)方法用于将指定格式的数据设置给dataTransfer对象,参数format用于定义数据的格式,data表示待设置的数据:getData(format)方法可以从dataTransfer对象中获取指定格式的数据,format 表示数据的格式。首先使用鼠标指针进入源对象,然后按住鼠标左键拖动源对象,当移动鼠标时源对象会跟随鼠标指针移动,如果源对象进入了目标对象,就松开鼠标左键让源对象放置在目标对象中。转载 2023-05-17 14:10:14 · 759 阅读 · 0 评论 -
const关键字生成常量有哪些特点?
然后在第3行、第4行代码中,通过数组下标的形式找到对应的值,并更改值,此时值是可以更改成功,因为这个操作并没有更改ary数组在内存中的存储地址。下面在第6行代码中给ary这个常量重新赋值,所赋的值是一个新数组,这是不被允许的,因为此操作改变了ary常量在内存中的存储地址,所以输出结果会报错。const关键字声明的常量具有块级作用域,const关键字的作用域与let关键字的作用域相同,其声明的量只在声明所处的块级作用域有效。使用const关键字声明常量,常量的值对应的内存地址不可更改,使用场景如下。转载 2023-05-17 14:00:04 · 74 阅读 · 0 评论 -
KOA2是什么?详解KOA与KOA2的差别
KOA2是洋葱模型的中间件,如下图所示, 对于服务器而言,它其实就是来处理一个又一个的请求, Web 服务器接收由浏览器发过来的一个又一个请求之后,它形成一个又一个的响应返回给浏览器. 而请求到达我们的服务器是需要经过程序处理的,程序处理完之后才会形成响应,返回给浏览器,我们服务器处理请求的这一块程序,在 Koa2 的世界当中就把它称之为中间件。这个调用顺序就是洋葱模型, 中间件对请求的处理有一种先进后出的感觉,请求最先到达第一层中间件,而最后也是第一层中间件对请求再次处理了一下。转载 2023-05-17 13:39:37 · 671 阅读 · 0 评论 -
Process模块在终端怎样进行数据数据输入?
对于每一个终端来说,都是一个标准输入与标准输出的一个接口而已,在 Process 模块中提供了获取终端输入数据的方法,下面进行详细介绍。在上述代码中,通过监听process.stdin 对象的data事件,从data事件的回调函数中获取终端输人的数据,由于输入消息后需要按[Enter] 键,系统会将这个动作识别为空格所以使用trim0来去掉这个空格。在上图中,第一个“123456”是使用键盘输入的,第二个“123456”是按[Enter]键后获取到的输入信息,被输出到了终端。demo6-6js执行结果。转载 2023-05-16 14:11:37 · 115 阅读 · 0 评论 -
什么是插槽?插槽有哪些基础的用法?
这是MyCom1组件的第1个p标签--通过slot标签,为用户预留内容占位符(插槽)-->这是MyCom1组件最后一个p标签-在使用 MyCom1 组件时,为插槽指定具体的内容-->~~~用户自定义的内容~~~转载 2023-05-16 11:33:46 · 350 阅读 · 0 评论 -
Ajax同步请求和异步请求有什么区别?
在同步请求示例中,我们同样创建了一个XMLHttpRequest对象,并设置了请求的URL和请求方法。在上述异步请求示例中,我们创建了一个 XMLHttpRequest 对象,设置了请求的 URL、请求方法和异步参数。在回调函数中,我们检查了 XMLHttpRequest 对象的状态码和响应状态,如果请求成功并且响应状态码为 200,就将响应结果显示在页面上。在Ajax中,请求可以是同步的或异步的。在这个例子中,我们使用jQuery的Ajax 方法发送请求,并在请求完成后将响应结果显示在页面上。原创 2023-05-10 15:58:03 · 450 阅读 · 0 评论 -
javascript有几种创建对象的方式?
Javascript创建对象的方式有哪些?下面介绍javascript中最常用的创建对象的六种方式。代码如下。转载 2023-05-09 14:32:55 · 133 阅读 · 0 评论 -
Set数据结构保存数据的方式是什么?实例演示操作
Set实例提供的delete()方法用于删除Set数据结构中的某个值,它接收一个参数代表要删除的值,返回一个布尔值,如果结果为true则表示删除成功,为false则表示删除失败。Set实例提供has()方法,该方法接收一个参数并判断该参数是否为Set数据结构中的成员,返回一个布尔值,如果结果为true则表示包含该成员,为false则表示不包含该成员。Set数据结构的实例与数组一样,也拥有一个forEachO方法,用于遍历Set数据结构中的成员,该方法可以对每个成员执行某种操作,没有返回值。转载 2023-05-08 11:29:05 · 226 阅读 · 0 评论 -
前端项目中怎样使用MySQL模块操作数据库?
要想在项目中操作数据库, 首先要安装操作 MySQL 数据库的第三方模块(mysql), 借助mysql 模块连接到 MySQL 数据库, 执行 SQL 语句,具体的流程如下图所示。当用户执行了删除的动作时,我们并没有执行 DELETE 语句把数据删除掉,而是执行了 UPDATE 语句,将这条数据对应的 status 字段标记为删除即可。所谓的标记删除,就是在表中设置类似于 status 这样的状态字段,来标记当前这条数据是否被删除。在删除数据时,推荐根据 id 这样的唯一标识,来删除对应的数据。转载 2023-05-08 11:05:30 · 778 阅读 · 0 评论 -
ECharts有哪些优点?ECharts怎么使用?
可视化的含义就是将数据通过更加直观的图表的方式来呈现。对于超大的数据量而言, 数据本身的体量可能就非常消耗资源, 而 ECharts 可以支持对流数据的动态渲染,加载多少数据就渲染多少数据,省去了漫长的数据加载的等待时间, 他还提供了增量渲染的技术, 只渲染变化的数据, 提高系统的资源利用。它的功能非常的丰富,提供了各种各样的图表,支持各种各样的定制, 满足各种需求,比如折线图、柱状图、饼图、K线图等. 在他的官方示例中, 提供了上百种图表, 可以用 只有你想不到, 没有她做不到 这句话来形容。转载 2023-05-04 14:32:48 · 471 阅读 · 0 评论 -
Redis中都有哪些删除数据的规则?
上述示例中,使用LTRIM命令将列表mylist保留了索引0和1之间的元素,删除了索引2及其之后的元素。以上便是Redis中的一些常见的数据删除规则和相应的命令示例。用于查找与给定模式匹配的键,并返回匹配的键列表。你可以结合DEL命令使用KEYS命令来删除匹配的键。注意:使用KEYS命令时要小心,因为它会在Redis中遍历所有键,对于大型数据库可能会影响性能。用于删除给定的一个或多个键。用于保留列表键中指定范围内的元素,而删除其他元素。用于设置键的过期时间,当键的生存时间到达指定的秒数后,键会被自动删除。原创 2023-05-04 14:20:38 · 340 阅读 · 0 评论 -
Vue如何用vm.$set()解决对象新增属性不能响应的问题 ?
为了解决这个问题,Vue提供了一个特殊的方法vm.$set(object, propertyName, value),也可以使用全局的Vue.set(object, propertyName, value)方法。如果你需要动态地添加属性到对象的数组中,可以使用数组的push()方法或splice()方法,因为Vue能够检测到这些数组方法的调用并更新视图。总结起来,通过使用push()方法或splice()方法向数组中添加新元素,Vue能够检测到数组的变化并更新视图。原创 2023-05-03 14:57:14 · 756 阅读 · 0 评论 -
聊一下CSS link与@import的区别和用法
link标签引入的CSS文件的样式优先级高于@import引入的CSS文件的样式。在这个示例中,通过link标签引入了一个名为styles.css的外部CSS文件,并通过@import语句在style标签内部引入了一个名为imported-styles.css的外部CSS文件。需要注意的是,link和@import可以引入多个外部CSS文件,你可以根据需要在页面中使用多个link标签和多个@import语句来引入不同的样式文件。在head标签中使用link标签,通过href属性指定外部CSS文件的路径。原创 2023-05-03 14:18:30 · 773 阅读 · 0 评论 -
直接给一个数组项赋值,Vue能检测到变化吗?
Vue能够检测到数组的变化,例如通过使用push()、pop()、shift()、unshift()、splice()等数组方法来添加、删除或修改数组的元素。然而,直接给数组的索引位置赋值并不会触发Vue的更新机制,因为Vue无法检测到这种变化。为了解决这个问题,Vue提供了一些特殊的数组方法,如$set或Vue.set,可以用于更新数组索引位置的值,这样Vue就能够检测到变化并更新视图。需要注意的是,如果你需要对整个数组进行替换,可以使用赋值一个新数组的方式,这样Vue也能够检测到数组的变化并更新视图。原创 2023-05-03 14:03:02 · 937 阅读 · 0 评论 -
Vue3.0都有哪些特性?
这意味着只有你使用到的代码会被打包,减少了最终的应用程序的体积。2.更好的性能:Vue.js 3.0在内部进行了重写,采用了更高效的渲染机制,从而提供了更好的性能表现。Vue.js 3.0在性能、体积和开发体验等方面都有显著的改进,为开发者提供了更好的工具和能力来构建现代化的Web应用程序。6.Teleport(传送门)组件:Vue.js 3.0引入了Teleport组件,它允许你将组件的内容渲染到DOM树的不同位置。它使用了更多的静态分析和摇树优化技术,从而在不牺牲功能的情况下减小了打包后的文件大小。原创 2023-05-03 13:48:42 · 148 阅读 · 0 评论 -
前端中document.write和innerHTML的区别?
document.write和innerHTML是JavaScript中用于修改HTML内容的两种常用方法,它们有一些区别。原创 2023-05-02 15:15:03 · 519 阅读 · 0 评论 -
前端中new操作符具体都干了哪些事情?
new操作符执行了构造函数Person,将this.name和this.age设置为传入的参数,并将Person的原型对象赋值给新创建的对象的原型链。new操作符执行了构造函数Car,将this.make和this.model绑定到新创建的对象上,并执行构造函数中的代码。需要注意的是,使用new操作符创建对象时,构造函数内部的代码将会在新对象上执行,并且可以使用this来引用新对象。如果构造函数中有返回一个对象,那么new操作符会直接返回这个返回的对象,而不是新创建的对象实例。6.执行构造函数代码。原创 2023-05-02 14:49:38 · 963 阅读 · 0 评论 -
什么是Spring eureka?有什么作用?
从上图中可以看出,当客户端服务通过注解等方式嵌入到程序的代码中运行时,客户端发现组件就会向注册中心注册自身提供的服务,并周期性地发送心跳来更新服务(默认时间为30s,如果连续三次心跳都不能够发现服务,那么Eureka就会将这个服务节点从服务注册表中移除)。Eureka是Netflix开发的一个服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS(Amazon Web Services )域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Eureka的服务发现机制如图4-2所示。转载 2023-04-26 15:24:45 · 114 阅读 · 0 评论 -
Buffer()构造函数创建Buffer对象如何实现?
缓冲区是在内容中操作数据的容器,Node:.js中的Buffer缓冲区模块,支持开发者在缓冲区结构中创建、读取、写入和操作二进制数据,该模块是全局性的,所以在使用时不需要使用requireO函数来加载。从上述方式中可以看出,Buffer()构造函数用于创建Buffer对象,其中的参数可以是字节(size)、数组(array)、buffer对象、字符串(str)等。在上述语法中,size代表字节大小,例如创建了5个字节的内存空间,就向Buffer()构造函数中传递参数5。在上述语法中参数为自定义数组。转载 2023-04-25 15:45:55 · 466 阅读 · 0 评论 -
undefined和null区别以及作用有哪些?
可以看到null和undefined分属不同的类型,未初始化定义的值用typeof检测出来是"undefined"(字符串),而null值用typeof检测出来是"object"(字符串)。最后,我们创建一个空对象obj2,并将其赋值为null,这是表示一个空对象的常见做法。null:null是一个对象,一个准备用来保存对象,还没有真正保存对象的值。从逻辑角度看,null值表示一个空对象指针,即表示一个对象被定义了,但是值为“空值”。null表示“ 没有对象”,即此处不应该有值,典型用法是如下。转载 2023-04-25 15:36:13 · 922 阅读 · 0 评论