首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【面试说】怪异的 JavaScript

里面包含了 25 道选择题,每个都是一个简单的表达式,然后让你选择,都是一些 JavaScript 怪异行为的体现,最后网站生成答案和解析,帮助你更好的理解 JavaScript 怪异行为。...MDN[2] 中的解析如下: 尾后逗号 (有时叫做 “终止逗号”)在向 JavaScript 代码添加元素、参数、属性时十分有用。...如果你想要添加新的属性,并且上一行已经使用了尾后逗号,你可以仅仅添加新的一行,而不需要修改上一行。这使得版本控制的代码比较(diff)更加清晰,代码编辑过程中遇到的麻烦更少。...会存在以下的怪异行为,undefined 不会报错。【这里我也找不到合适的理由去解释】。...结语 Javascript 之所以有以上怪异表现,主要是初期设计过于匆忙,1995 年仅用用了 10 天来完成的。

31710
您找到你想要的搜索结果了吗?
是的
没有找到

面试官:DTD 有什么作用?

使用时需要注意什么? 怪异模型 使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以称之为怪异模式。...标准模型 按照 W3C 标准解析执行代码 浏览器解析时使用标准模式还是怪异模式,与网页中的DTD声明直接相关,DTD声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相关的方式加载网页并显示...是因为以前分了两个,一个是网景,一个是 IE 浏览器,而W3C标准创建之后,为了兼容老代码,老网站,所以采取了两种模式。...二者都有什么差别 在怪异模式下,排版会模拟 Navigator 4 与 Internet Explorer 5 的非标准行为。为了支持在网络标准被广泛采用前,就已经建好的网站,这么做是必要的。...在标准模式下,行为即(但愿如此)由 HTML 与 CSS 的规范描述的行为。 使用时需要注意什么?

95110

前端科普文:为什么<!DOCTYPE> 不可或缺

这行代码有什么用? 去掉它会有什么影响?...Mode,有时又称 “混杂模式”、”兼容模式 Compatibility Mode”)这两个名词。...当用户需要显示一些新的、满足 W3C 规范的页面时,渲染引擎切换到一个与 Quirks Mode 对应的 Standards Mode(标准模式),在此模式下渲染引擎就是当前的最新版本,这样也就满足了更多的...HTML5 不基于 SGML,所以不需要引用 DTD。 小知识: 在 ie6 中,如果在 doctype 声明前有一个 xml 声明(比如: <?...为了避免浏览器进入怪异模式(事实上,现实中已经几乎没有网页需要用浏览器的怪异模式去解析,浏览器的 Quirks Mode 仅仅是为了向后兼容),所以,请确保在 HTML 页面的首行写上:

89680

为什么我们的web前端变的越来越复杂

关于模块化开发,模块化开发也是炒的沸沸扬扬,貌似是必备的技能,但是我们有多少项目需要模块化开发,他们给我们带来多少便利?至少我做过的项目大多数是用不到模块化开发的。...我们的代码变得怪异难懂 我不知道从什么时候,前端的代码写的越难懂就越能显示水平。代码是要尽量保持可读性的。能用通俗的写法写的,尽量不用怪异的写法写,哪怕我要多写几行代码,我们也要保持代码的可读性。...但是现在的前端代码以别人看不懂为荣,以用了某些高级应用为荣,前端的代码编写已经进入了误区。...有时候我发现身边的一些人,代码那些怪异的写法,他自己根本也不知道为什么那么写,只是单纯的觉得那样写看起来水平高而已,仅仅如此而已。...再比如说,书上讲的的很多css3的东西都是W3C的文档改编的,网上的。我不知道大家再用css3的时候有没有发现很多的bug,这些bug难倒不需要写在书里让我们的新人少走一些弯路吗?

97460

「重学」从零开始:你知道的、不知道的DOCTYPE

内容摘要: 什么是混杂模式、近标准模式和标准模式 如何查看页面的渲染模式 文档类型的种类 标准类型下的怪异行为(很有意思哟) ---- 在开始学习前端之前,你总会需要创建一个 HTML。...后来 W3C 制定了 web 规范之后,为了保证现有页面可用,各大浏览器不能立马使用新规范。...混杂模式,也成为怪异模式,会兼容 Navigator 4 和 IE 5 的非标准行为。 近标准模式会兼容少数的混杂行为,可以理解为过渡模式。 标准模式只兼容符合标准描述的行为。...文档类型很多,好在我们不需要记住。HTML5 之后,我们只需要指定即可让浏览器尽可能地按照标准来渲染。...此外,如果你的网页使用 XHTML[3] 并在 Content-Type HTTP 标头使用application/xhtml+xml MIME 类型,你不需要使用 DOCTYPE 启动标准模式,

51830

js判断iframe加载是否成功的方法

由于经常需要动态添加iframe,然后再对添加的iframe进行相关操作,而往往iframe还没添加完呢,后边的代码就已经执行完了,所以有些你写的东西根本没有显示出来。...onreadystatechange事件,这个事件每次在elem内容发送变化的时候触发,比如内容正在载入loading会触发,内容载入完毕loaded会触发,内容载入成功complete会触发,这个函数还需要配合...onreadystatechangeiframe.attachEvent("onreadystatechange", function(){//此事件在内容没有被载入时候也会被触发,所以我们要判断状态//有时候会比较怪异...iframe.attachEvent){iframe.attachEvent("onreadystatechange", function() {//此事件在内容没有被载入时候也会被触发,所以我们要判断状态//有时候会比较怪异...this.removeEventListener("load", arguments.call, false);//这里是回调函数}, false);}需要注意的是:上面的函数必须放在 iframe 被

1.4K20

Python 官方推荐的一款打包工具

这种方法一般都会工作正常,但有时它会表现出一些怪异行为,因此你必须手动安装或删除某些特定版本的包,并记得定期更新requirements.txt文件,以保持项目环境的一致。...此外,一些项目有时会保留requirements.txt文件的两个版本——一个用于开发环境,一个用于生产环境,这可能会导致更多的复杂性。...管理你的开发环境 通常有一些Python包只在你的开发环境中需要,而不是在你的生产环境中,例如单元测试包。 Pipenv将使用–dev标志保持两个环境分开。...pipenv install --dev nose2 nose2,但也将其关联为只在开发环境中需要的软件包。...这是在虚拟环境中运行你自己的Python代码的一个简单方法, pipenv run python my_project.py 如果你不想每次运行Python时都输入这么多,你可以在shell中设置一个别名

58320

Python 官方推荐的一款打包工具

这种方法一般都会工作正常,但有时它会表现出一些怪异行为,因此你必须手动安装或删除某些特定版本的包,并记得定期更新requirements.txt文件,以保持项目环境的一致。...此外,一些项目有时会保留requirements.txt文件的两个版本——一个用于开发环境,一个用于生产环境,这可能会导致更多的复杂性。...管理你的开发环境 通常有一些Python包只在你的开发环境中需要,而不是在你的生产环境中,例如单元测试包。 Pipenv将使用–dev标志保持两个环境分开。...pipenv install --dev nose2 nose2,但也将其关联为只在开发环境中需要的软件包。...这是在虚拟环境中运行你自己的Python代码的一个简单方法, pipenv run python my_project.py 如果你不想每次运行Python时都输入这么多,你可以在shell中设置一个别名

1.2K50

Karpathy离职OpenAI,首发2小时AI大课!从头开始构建GPT分词器

新智元报道 编辑:桃子 【新智元导读】果不其然,继放出BPE的GitHub代码后,Karpathy终于上线了「从头构建GPT分词器」的课程,引来大波网友关注。...这个项目是minbpe——专为LLM分词中常用的BPE(字节对编码)算法创建最少、干净以及教育性的代码。 目前,GitHub已经狂揽6.1k星,442个fork。...另外,大模型中许多怪异行为和问题,其实都可以追溯到分词器。 就比如: - 为什么LLM拼不出单词? - 为什么LLM无法完成超级简单的字符串处理任务,比如反转字符串?...在视频结尾,Karpathy重新回顾了LLM分词器带来的怪异问题。 首先,为什么LLM又时拼不正确词,或者做不了其他与拼写相关的任务?...不幸的是,有时我们会看到所有四位数字的四个token,有时是三个,有时是两个,有时是一个,而且是以任意的方式。 但这也并不理想。

21610

Python 官方推荐的一款打包工具

这种方法一般都会工作正常,但有时它会表现出一些怪异行为,因此你必须手动安装或删除某些特定版本的包,并记得定期更新requirements.txt文件,以保持项目环境的一致。...此外,一些项目有时会保留requirements.txt文件的两个版本——一个用于开发环境,一个用于生产环境,这可能会导致更多的复杂性。...管理你的开发环境 通常有一些Python包只在你的开发环境中需要,而不是在你的生产环境中,例如单元测试包。 Pipenv将使用–dev标志保持两个环境分开。...pipenv install --dev nose2 nose2,但也将其关联为只在开发环境中需要的软件包。...这是在虚拟环境中运行你自己的Python代码的一个简单方法, pipenv run python my_project.py 如果你不想每次运行Python时都输入这么多,你可以在shell中设置一个别名

78240

一周极客热文:200 行 C 代码编写你的第一个垃圾收集器

Google Dart团队的一名工程师通过编写一个“垃圾收集器”来调整自己,而且起到了一个非常好的效果,但是,他只用了200行C 语言代码,大家不妨来学一下,大概有如下几点: 精简、复用、再复用 标记并清理...包括基本语法、数组、集合类、泛型、面向对象、垃圾回收、异常控制、输入输出和内存。 从Hello World中你可以学到什么?...你需要知道HTML 你需要了解CSS 你需要了解浏览器 我提过JavaScript吗?...你需要有像样的设计能力(design) 你需要对服务器端非常自信 然后还有许多其他的东西你需要掌握 7、 10大怪异的编程语言 人们都认为编程语言很容易使用和学习。...但有时候编程语言设计者们会创建一些违背这些原则的语言,要么供研究使用要么纯属娱乐。下面是10种最怪异的最不切实际的编程语言。

804101

程序员反感(讨厌、不喜欢)什么?

Debug的时候,在怪异再棘手的问题,只要可以稳定重现,都迟早可以解决。“稳定重现”的意思是只要按一定的步骤做下来,问题就可以重演。最讨厌的就是那种时有时没有,不知道什么时候出现的bug。...改了代码不知道有没有效,也不知道是否引入了新问题。可以把码农逼疯。 [1240] 程序员对不可控的不确定性因素也是有解决方案的。...在代码里头把异常try-catch-finally一下,做好补救收尾,在加上几行注释警醒后来人这里别乱动。对随机发生的问题,对应方案就是假设这里永远都会有问题,把随机的行为转化为降格的确定行为。...宽你妹,哪个狗日的写的代码,注释没有,花式调用,各种封装,jar包缺失(还死不承认)。 我们不强制加班,加班是你们任务没做完。有时候加班还没工资。这里加班上限是35个小时,多的算调休,呵呵。

49420

RxJS 快速入门

不仅如此,有时候我到底需要串起多少个 Ajax 请求是未知的,要串起哪些也同样是未知的。这已经不再是地狱,而是《Mission: Impossible》了。...它对于 Java / C# 等背景的程序员来说可能会显得比较怪异,不过,你可以先忽略它们,聚焦在编程范式和接下来要讲的操作符语义上。...这种工作方式非常像电路中的串联行为,因此我称其为串联创建器。 串联的适用场景就很容易想象了,比如我们需要先通过 Web API 进行登录,然后取学生名册。这两个操作就是异步且串联工作的。...操作符 RxJS 有很多操作符,事实上比创建器还要多一些,但是我们并不需要一一讲解,因为它们中的很大一部分都是函数式编程中的标配,比如 map、reduce、filter 等。...代码风格 如同所有 FP 程序一样,ReactiveX 的代码也应该由一系列小的、单一职责的、无副作用的函数组成。

1.8K20

程序员反感(讨厌、不喜欢)什么?

Debug的时候,在怪异再棘手的问题,只要可以稳定重现,都迟早可以解决。“稳定重现”的意思是只要按一定的步骤做下来,问题就可以重演。最讨厌的就是那种时有时没有,不知道什么时候出现的bug。...改了代码不知道有没有效,也不知道是否引入了新问题。可以把码农逼疯。 ? 程序员对不可控的不确定性因素也是有解决方案的。...在代码里头把异常try-catch-finally一下,做好补救收尾,在加上几行注释警醒后来人这里别乱动。对随机发生的问题,对应方案就是假设这里永远都会有问题,把随机的行为转化为降格的确定行为。...宽你妹,哪个狗日的写的代码,注释没有,花式调用,各种封装,jar包缺失(还死不承认)。 我们不强制加班,加班是你们任务没做完。有时候加班还没工资。这里加班上限是35个小时,多的算调休,呵呵。

40130

超实用的 Linux 高级命令,运维一定要懂!

/alldatabases.sql (后面不加&符号)执行了上述命令后,会提示叫你输入密码,输入密码后,该命令还在前台运行,但是我们的目的是后天运行该命令,这个时候你可以按下 Ctrl+Z,然后在输入bg...六、持续 ping 并将结果记录到日志很多时候,运维总会听到一个声音,是不是网络出什么问题了啊,导致业务出现怪异的症状,肯定是服务器网络出问题了。...命令:# netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn八、查找80端口请求数最高的前20个IP有时候业务的请求量突然上去了,那么这个时候我们可以查看下请求来源...IP情况,如果是集中在少数IP上的,那么可能是存在攻击行为,我们使用防火墙就可以进行封禁。...实例背景:我们公司是有堡垒机的,任何操作均需要在堡垒机上进行,有些开发人员需要访问 ELasticSearch 的 head 面板查看集群状态,但是我们并不想将 ElasticSearch 的9200

46430

逼格高又实用的 Linux 高级命令,开发运维都要懂

/alldatabases.sql (后面不加&符号) 执行了上述命令后,会提示叫你输入密码,输入密码后,该命令还在前台运行,但是我们的目的是后天运行该命令,这个时候你可以按下Ctrl+Z,然后在输入bg...就可以达到第一个命令的效果,让该命令后台运行,同时也可以让密码隐蔽输入。...六、持续ping并将结果记录到日志 很多时候,运维总会听到一个声音,是不是网络出什么问题了啊,导致业务出现怪异的症状,肯定是服务器网络出问题了。...八、查找80端口请求数最高的前20个IP 有时候业务的请求量突然上去了,那么这个时候我们可以查看下请求来源IP情况,如果是集中在少数IP上的,那么可能是存在攻击行为,我们使用防火墙就可以进行封禁。...实例背景:我们公司是有堡垒机的,任何操作均需要在堡垒机上进行,有写开发人员需要访问ELasticSearch的head面板查看集群状态,但是我们并不想将ElasticSearch的9200端口映射出去,

2.1K51

2023跟我一起学设计模式:适配器模式(Adapter)

你无法 “直接” 使用分析函数库, 因为它所需的输入数据格式与你的程序不兼容。 你可以修改程序库来支持 XML。 但是, 这可能需要修改部分依赖该程序库的现有代码。...请注意, 这种方式仅能在支持多重继承的编程语言中实现, 例如 C++。 类适配器不需要封装任何对象, 因为它同时继承了客户端和服务的行为。 适配功能在重写的方法中完成。...适配器模式适合应用场景 当你希望使用某个类, 但是其接口与其他代码不兼容时, 可以使用适配器类。 适配器模式允许你创建一个中间层类, 其可作为代码与遗留类、 第三方类或提供怪异接口的类之间的转换器。...只要客户端代码通过客户端接口与适配器进行交互, 你就能在不修改现有客户端代码的情况下在程序中添加新类型的适配器。 代码整体复杂度增加, 因为你需要新增一系列接口和类。...有时直接更改服务类使其与其他代码兼容会更简单。 Go 适配器模式讲解和代码示例 适配器是一种结构型设计模式, 它能使不兼容的对象能够相互合作。

18320
领券