javascript设计的10大缺陷
- 格式:docx
- 大小:84.55 KB
- 文档页数:6
软件开发中的十大常见错误及其解决方案软件开发是一个复杂而繁琐的过程,即使经验丰富的开发人员也难免会犯错。
本文将详细介绍软件开发中的十大常见错误,并提供了相应的解决方案,以帮助开发人员更好地提高开发质量,避免这些错误。
错误一:不合理的项目管理在软件开发中,缺乏合理的项目管理容易导致进度延迟、质量下降等问题。
解决方案是建立详细的项目计划和进度表,明确任务分配和时间安排,并保持团队成员间的良好沟通和协作。
错误二:不完善的需求分析需求分析是软件开发的重要一环,不完善的需求分析导致功能不完备、用户不满意等问题。
解决方案是与客户充分沟通,明确需求并编写清晰详细的需求文档,同时采用敏捷开发的方法对需求进行迭代和调整。
错误三:代码质量低下代码质量低下会导致软件缺陷增多、性能下降等问题。
解决方案是提高开发人员的编程技能,制定严格的代码规范,并使用代码静态分析工具进行代码检查和优化。
错误四:缺乏测试测试是保证软件质量的关键环节,缺乏测试容易导致软件存在各种缺陷。
解决方案是建立完善的测试计划,包括单元测试、集成测试和系统测试,并使用自动化测试工具提高测试效率。
错误五:不合理的架构设计不合理的架构设计会导致软件难以扩展、维护困难等问题。
解决方案是在项目初期进行全面的架构设计,考虑到软件的可扩展性、可维护性和性能等方面,并遵循设计模式和最佳实践。
错误六:安全性问题安全性问题是现代软件开发中不可忽视的重要问题,缺乏安全设计容易导致信息泄露、恶意攻击等风险。
解决方案是采用安全开发的方法,进行安全性需求分析和威胁建模,并使用安全性测试工具进行漏洞扫描和安全代码审查。
错误七:性能问题性能问题是用户体验的重要方面,不良的性能会导致软件响应缓慢、卡顿等问题。
解决方案是在开发过程中关注性能问题,进行性能测试和优化,并合理选择数据结构、算法和编码方式。
错误八:不合理的代码复用代码复用是提高开发效率的重要手段,但不合理的代码复用会导致系统的耦合度增加、可维护性下降等问题。
让程序员感到崩溃的10种编程语言_光环大数据 Python培训机构软件开发领域中的程序员对编程语言最有发言权。
一种语言可能是一些程序员的最爱,但它同时也是另一些程序员的噩梦。
如果你在编程领域呆了一段时间,你就迟早会发现有些语言由于古怪的语法、灵活性不够(或过于灵活)、差劲的调试功能或其它原因让你抓狂,甚至崩溃。
根据程序员在 Quora,Stack Overflow 和Hacker News这三大国外论坛上的讨论,我们挑选了其中10大最让程序员不爽的编程语言,并解释了原因。
下面PHP100就带你具体看一看这个有趣的清单。
1. Visual Basic语言介绍:这种语言和相应的开发环境通常是用来开发Windows应用程序(图形界面),它是由微软公司发明,对于初学者比较简单,可以将写代码与使用图形化和拖拽技术相结合。
程序员的吐槽:它的语法过于啰嗦和冗长,而且有些地方有些奇怪,它需要动态链接库执行,而且基本上不支持面向对象开发。
自从1998年它就不再受到微软的官方支持了。
2. Perl语言介绍:Perl是一种高级的,用途广泛的解释型语言,它被形容为互联网的管道胶带。
Perl被应用在各个方面,从CGI脚本到系统和网络的管理。
程序员的吐槽:对Perl最大争议就在与它极大的灵活性和过度冗余的语法,它有着“只能写”的称号(write-only language),代码很难被其他人阅读和维护。
3. Java的面向对象编程语言之一。
Java代码被编译为字节码,然后由Java虚拟机解释,所以它可以运行在任意的平台上(Write Once,Run Anywhere)。
程序员的吐槽:Java的语法有些冗长,运行较慢,API有些被过度设计。
很多其他语言实现相同的功能可以更高效。
4. PHP语言介绍:PHP是在服务器端非常流行的一种解释型脚本语言,可以动态生成HTML页面。
它也可以单独作为一种脚本语言应用在多种操作系统上。
程序员的吐槽:它在很多功能上有不一致的命名规则,有一些安全漏洞,不天然支持Unicode,还有它经常会和前端的HTML/CSS代码混在一起。
基于JavaScript的前端交互设计与开发在当今数字化时代,网页前端交互设计与开发已经成为互联网行业中至关重要的一环。
随着移动设备的普及和网页应用的多样化,用户对于网页的交互体验要求也越来越高。
作为前端开发人员,掌握JavaScript语言并将其运用到前端交互设计中,是提升用户体验、增加网站吸引力的关键之一。
JavaScript在前端交互设计中的作用JavaScript是一种轻量级、解释性的编程语言,广泛应用于网页开发中。
在前端交互设计中,JavaScript可以实现诸如动态效果、数据验证、页面交互等功能。
通过JavaScript,开发人员可以实现网页元素的动态加载、响应用户操作、实时更新数据等操作,从而提升用户体验。
动态效果JavaScript可以通过DOM(文档对象模型)操作实现网页元素的动态效果,比如点击按钮弹出提示框、鼠标悬停显示菜单等。
这些动态效果可以使网页更加生动有趣,吸引用户留在页面上进行交互。
数据验证在表单提交过程中,JavaScript可以用来进行数据验证,比如检查用户输入是否符合要求、是否为空等。
通过即时反馈错误信息,可以帮助用户更快速地完成表单填写,提高用户体验。
页面交互通过JavaScript,可以实现页面之间的交互,比如点击链接异步加载内容、实现无刷新页面跳转等。
这种无需整体刷新页面的方式可以提升网站的加载速度和用户体验。
前端交互设计与用户体验前端交互设计直接影响着用户在网站上的体验。
一个良好的前端交互设计能够提升用户对网站的满意度,增加用户粘性,并最终实现用户转化。
而JavaScript作为前端开发中不可或缺的一部分,在提升用户体验方面发挥着重要作用。
响应式设计随着移动设备的普及,响应式设计已经成为了前端开发的标配。
通过JavaScript媒体查询和事件监听等特性,可以实现页面在不同设备上的自适应布局和交互效果,从而提供更好的用户体验。
用户行为分析通过JavaScript统计用户在网站上的行为数据,比如点击量、停留时间等,可以帮助优化页面设计和内容呈现方式。
15种常用缺陷检测实例常用缺陷检测实例:1. 空指针异常空指针异常是一种常见的缺陷,它通常在程序中使用了未初始化的指针或者引用时出现。
这种错误可能导致程序崩溃或者产生不可预料的结果。
为了避免空指针异常,开发人员应该在使用指针或者引用之前进行有效性检查。
2. 数组越界数组越界是指访问数组时超出了其有效索引范围的错误。
这种错误可能导致程序崩溃或者产生不正确的结果。
为了避免数组越界,开发人员应该在访问数组之前检查索引的有效性。
3. 内存泄漏内存泄漏是指程序在使用完一块内存后没有正确释放它,导致系统中的可用内存逐渐减少。
长时间运行的程序中存在内存泄漏会导致系统性能下降甚至崩溃。
为了避免内存泄漏,开发人员应该在使用完内存后及时释放它。
4. 死循环死循环是指程序中的循环条件永远为真,导致程序无法正常退出。
这种错误通常是由于循环条件判断条件不正确或者循环体内没有正确的终止条件导致的。
为了避免死循环,开发人员应该仔细检查循环条件和循环体内的逻辑。
5. 数据竞争数据竞争是指多个线程同时访问共享数据并且至少有一个线程对该数据进行了写操作,导致未定义的行为。
数据竞争可能导致程序崩溃或者产生不可预料的结果。
为了避免数据竞争,开发人员应该使用同步机制来保护共享数据的访问。
6. SQL注入SQL注入是指攻击者通过在用户输入的数据中插入恶意的SQL代码来执行非法操作。
SQL注入可能导致数据库被攻击者恶意操作,导致数据泄露或者损坏。
为了避免SQL注入,开发人员应该对用户输入的数据进行正确的验证和过滤。
7. 超过缓冲区边界超过缓冲区边界是指程序在写入数据时超过了目标缓冲区的边界,导致数据覆盖到了其他内存区域。
这种错误可能导致程序崩溃或者产生不可预料的结果。
为了避免超过缓冲区边界,开发人员应该在写入数据之前检查目标缓冲区的大小。
8. 栈溢出栈溢出是指程序使用的栈空间超过了其预先分配的大小,导致栈溢出。
这种错误通常由于递归调用层数过多或者局部变量占用过多的栈空间导致的。
基于JavaScript的人机交互界面设计与用户体验优化随着互联网技术的不断发展,人机交互界面设计和用户体验优化变得越来越重要。
在这个数字化时代,用户对于产品的界面设计和体验要求越来越高,而JavaScript作为一种前端开发语言,在人机交互界面设计和用户体验优化中扮演着至关重要的角色。
本文将探讨基于JavaScript的人机交互界面设计与用户体验优化的相关内容。
1. JavaScript在人机交互界面设计中的应用JavaScript作为一种脚本语言,广泛应用于网页开发中,尤其在人机交互界面设计中发挥着重要作用。
通过JavaScript,开发者可以实现丰富多彩的交互效果,提升用户对网页的体验感受。
比如,通过JavaScript可以实现页面元素的动态加载、响应用户操作、表单验证等功能,从而增强用户与网页之间的互动性。
2. JavaScript对用户体验优化的影响在用户体验设计中,JavaScript扮演着至关重要的角色。
通过JavaScript技术,可以实现页面加载速度的优化、交互效果的增强、用户操作的反馈等功能,从而提升用户体验。
比如,通过使用Ajax技术可以实现页面局部刷新,减少页面加载时间;通过使用jQuery等框架可以实现丰富多彩的动画效果,增加页面的交互性;通过使用Vue.js、React等前端框架可以实现数据驱动视图更新,提升用户体验。
3. JavaScript在移动端人机交互界面设计中的应用随着移动互联网的快速发展,移动端人机交互界面设计变得越来越重要。
JavaScript在移动端开发中也扮演着重要角色。
通过使用响应式设计和移动端优化技术,结合JavaScript技术可以实现适配不同屏幕尺寸的界面设计,并提供流畅的用户体验。
同时,通过使用Touch 事件、CSS3动画等技术可以增强移动端应用的交互效果,提升用户体验。
4. JavaScript在Web应用程序中的用户体验优化策略在Web应用程序开发中,如何利用JavaScript技术来优化用户体验是开发者们需要思考的问题。
JavaScript中的浏览器兼容性问题与解决方案在开发网页时,经常会遇到JavaScript的浏览器兼容性问题。
由于不同的浏览器对JavaScript的解释和支持程度不同,开发者需要注意这些差异,以确保网页在不同浏览器上正常运行。
本文将介绍一些常见的浏览器兼容性问题,并提供相应的解决方案。
一、DOM操作差异DOM(Document Object Model)是JavaScript操作网页内容的重要接口。
然而,不同浏览器对DOM的实现方式会存在差异,导致相同的DOM操作在不同浏览器上产生不同的效果或错误。
解决方案:1. 使用适配器模式:使用工具函数或库来封装DOM操作,例如jQuery等。
这些封装库会处理浏览器兼容性问题,使得开发者无需关心具体的差异。
2. 检测浏览器特性:通过判断浏览器特性的支持情况,选择合适的方式进行DOM操作。
可以使用Modernizr等工具来进行特性检测。
二、事件处理差异不同浏览器对事件的处理方式也存在差异。
例如,事件对象的属性、方法以及事件触发顺序等方面都可能有所不同。
解决方案:1. 使用事件库:类似于适配器模式,可以使用事件库来处理不同浏览器之间的差异。
例如,使用jQuery的事件处理方法可以保证跨浏览器的一致性。
2. 绑定事件时添加前缀:在绑定事件时,可以先针对具体的浏览器添加前缀,以修复特定浏览器的兼容性问题。
例如,`attachEvent`和`addEventListener`可以同时使用来绑定事件。
三、CSS样式差异JavaScript常用于修改网页的样式,但不同浏览器对CSS属性的解释也会有所不同,导致样式显示不一致。
解决方案:1. 使用样式库:像Bootstrap、Normalize.css等库提供了跨浏览器的CSS样式订正,可以减少不同浏览器之间的样式差异。
2. 检测浏览器前缀:对于支持特定前缀的属性,可以通过检测浏览器类型来动态添加相应的前缀。
例如,使用类似`-webkit-`和`-moz-`的前缀。
程序设计缺点程序设计是一个复杂的过程,涉及到需求分析、设计、编码、测试和维护等多个阶段。
尽管程序设计可以创造出功能强大的软件,但在实际开发过程中也存在一些缺点。
以下是对程序设计缺点的探讨:1. 需求不明确程序设计过程中的首要问题往往是需求不明确。
如果项目开始时需求没有被准确定义,会导致设计方向错误,增加后期修改的成本和难度。
2. 设计过度或不足设计阶段,开发者可能会面临设计过度或设计不足的问题。
设计过度可能导致软件过于复杂,难以维护;设计不足则可能导致软件功能不完善,无法满足用户需求。
3. 编码质量问题编码是程序设计中的核心环节,但编码质量的高低直接影响到软件的稳定性和性能。
不规范的编码习惯、缺乏代码复用、不充分的注释等都可能成为编码质量的隐患。
4. 缺乏模块化和可重用性在程序设计中,如果缺乏对模块化和可重用性的考虑,将导致代码难以维护和扩展。
模块化不足的软件在面对需求变更时,往往需要重写大量代码。
5. 测试不充分软件测试是确保软件质量的重要环节。
测试不充分可能导致软件存在未被发现的错误和缺陷,影响软件的稳定性和用户体验。
6. 维护困难随着软件功能的增加和用户需求的变化,软件维护变得越来越困难。
如果程序设计没有考虑到可维护性,后期的维护成本将会非常高。
7. 技术选型不当在程序设计初期,技术选型对项目的成败至关重要。
选择不适合项目需求的技术栈,可能会导致开发效率低下,甚至项目失败。
8. 忽视用户界面和用户体验用户界面(UI)和用户体验(UX)是软件成功的关键因素之一。
如果程序设计过程中忽视了UI/UX,即使功能再强大,用户也可能因为不友好的界面而放弃使用。
9. 安全性问题在程序设计中,安全性经常被忽视。
不安全的软件可能会遭受黑客攻击,导致数据泄露或其他安全问题。
10. 项目管理问题项目管理不善也会导致程序设计出现问题。
项目延期、预算超支、团队沟通不畅等项目管理问题都可能影响到程序设计的质量和进度。
十大不合理的交互设计1.无用的弹窗广告:在应用程序或网站上出现频繁而无关紧要的弹窗广告,打断用户的操作流程,对用户体验造成干扰。
2.强制注册:在用户进入应用程序或网站时要求强制注册,而不允许匿名浏览或试用。
这给用户带来不便,并限制了用户与应用程序的互动。
3.模糊的错误消息:当用户在应用程序或网站上出错时,提示错误消息可能会过于笼统或难以理解,无法帮助用户确定问题所在或采取正确的行动。
4.过度复杂的导航结构:设计复杂的导航结构,使用户难以找到所需的功能或信息。
这会降低用户的效率和满意度。
5.隐藏的功能或内容:将重要的功能或信息隐藏在不显眼的位置,用户需要花费大量时间才能找到它们。
这不仅降低了用户的效率,还给用户带来沮丧的体验。
6.无用的默认设置:设置应用程序或网站的默认设置时,忽视用户需求和偏好,导致用户需要手动更改设置才能获得更好的体验。
7.无用的动画效果:过度的动画效果可能会分散用户的注意力,延长任务完成时间,降低用户的效率。
8.难以理解的图标或符号:使用难以理解的图标或符号作为导航或功能按钮,用户可能无法准确理解其含义,从而导致误操作或困惑。
9.不直观的输入格式:在表单填写时,要求用户按照特定的格式输入信息,而不提供明确的指导或自动格式化的功能。
这会增加用户的负担和错误的可能性。
10.缺乏用户反馈或确认消息:在用户执行项操作后,没有即时的反馈或确认消息,用户可能会感到不确定是否操作成功,从而导致误操作或困惑。
以上是十大不合理的交互设计,这些设计缺陷会降低用户的效率和满意度,给用户带来不便和困扰。
为了提供良好的用户体验,设计师应当避免以上不合理的设计,并关注用户需求和偏好,提供直观、简洁和易用的交互界面。
基于JavaScript的手机App界面设计与用户体验研究移动应用程序(App)已经成为人们日常生活中不可或缺的一部分,而一个成功的App往往离不开优秀的界面设计和用户体验。
在当今移动互联网时代,JavaScript作为一种广泛应用于Web开发的脚本语言,也在手机App开发中扮演着重要的角色。
本文将探讨基于JavaScript的手机App界面设计与用户体验研究。
JavaScript在手机App开发中的应用JavaScript作为一种脚本语言,具有跨平台、易学易用等特点,在手机App开发中得到了广泛应用。
通过JavaScript,开发者可以实现丰富多彩的交互效果,提升用户体验。
同时,JavaScript还可以与HTML、CSS等技术结合,实现灵活的界面设计。
手机App界面设计原则在设计手机App界面时,需要遵循一些基本原则,以确保用户体验的流畅性和友好性。
首先是简洁性,界面要简洁明了,避免信息过载;其次是一致性,保持整体风格和交互方式的一致性;再者是可导航性,用户能够轻松找到他们需要的功能;最后是反馈性,及时给予用户操作反馈。
JavaScript实现手机App界面交互效果JavaScript可以通过DOM操作、事件监听等方式实现丰富的手机App界面交互效果。
比如点击按钮弹出提示框、下拉刷新页面、轮播图效果等。
这些交互效果可以增强用户对App的使用愉悦感,提升用户粘性。
用户体验研究方法为了提升用户体验,开发者需要进行用户体验研究。
常见的研究方法包括用户访谈、焦点小组讨论、原型测试等。
通过这些方法,可以了解用户需求和偏好,及时调整App界面设计和交互方式。
结合用户反馈优化界面设计用户反馈是改进手机App界面设计的重要依据。
开发者可以通过收集用户反馈意见、数据分析等方式,及时优化界面设计和交互体验。
比如根据用户反馈调整按钮位置、改进页面布局等。
结语基于JavaScript的手机App界面设计与用户体验研究是一个不断探索和优化的过程。
组件开发中常见的错误及其解决方法组件开发中常见的错误及其解决方法在2023年的今天,随着技术的不断发展和应用场景的不断拓展,组件化开发已经成为了一种趋势和不可逆转的潮流。
然而在实际的开发过程中,由于各种种种的原因,可能会出现一些错误,这些错误可能会导致组件的无法正常使用,给开发者带来很多的麻烦和困扰。
因此,在本文中,我们将会通过一些实际的案例和经验,来总结一下组件开发中常见的错误和解决方法。
1. 命名冲突在组件化开发中,命名冲突是一个常见的问题。
组件化开发中经常需要定义很多的变量和函数名,如果命名不当,可能会导致变量和函数名之间的冲突。
为了避免这种情况的发生,我们需要在组件化开发过程中,给每一个变量和函数都起一个独特的名称,这样就可以避免命名冲突的问题。
解决方法:在组件开发过程中需要遵守统一的命名规范和规则,并避免同名命名的问题。
保持变量和函数的独立性,以便在不同的组件中可以独立使用。
2. 接口设计不合理在组件化开发中,接口设计不合理也是一个常见的问题。
如果组件的接口设计不合理,可能会导致组件无法正常使用或者导致组件的性能和安全性下降。
为了避免这种情况的发生,我们需要在组件化开发过程中,对组件的接口设计进行详细的分析和规划。
解决方法:在组件开发过程中需要精心设计接口,保证接口的健壮性和安全性。
同时,需要考虑接口的可扩展性和可维护性。
为了保证接口的稳定性,最好将接口设计和文档编写一起完成。
3. 共享资源冲突在组件化开发中,共享资源冲突也是一个常见的问题。
共享资源冲突通常发生在多个组件同时使用共享资源的情况下,如全局变量或单例对象等。
如果多个组件同时修改同一份共享资源,就会出现资源冲突的问题,导致组件无法正常使用。
解决方法:在组件开发过程中,需要维护好共享资源的状态。
避免多个组件同时修改同一份共享资源。
尽可能的使用局部变量和组件内部状态来维护数据,减少共享资源的使用。
4. 缺乏安全机制在组件化开发中,安全性也是一个非常重要的问题。
Javascript的10个设计缺陷
作者: 阮一峰发布时间: 2011-06-30 16:17 阅读: 1391 次原文链接全屏阅读[收藏]
一、为什么Javascript有设计缺陷?
这里有三个客观原因,导致Javascript的设计不够完善。
1. 设计阶段过于仓促
Javascript的设计,其实只用了十天。
而且,设计师是为了向公司交差,本人并不愿意这样设计(参见《Javascript诞生记》)。
另一方面,这种语言的设计初衷,是为了解决一些简单的网页互动(比如,检查"用户名"是否填写),并没有考虑复杂应用的需要。
设计者做梦也想不到,Javascript将来可以写出像Gmail这种极其庞大复杂的网页。
2. 没有先例
Javascript同时结合了函数式编程和面向对象编程的特点,这很可能是历史上的第一例。
而且直到今天为止,Javascript仍然是世界上唯一使用Prototype继承模型的主要语言。
这使得它没有设计先例可以参考。
3. 过早的标准化
Javascript的发展非常快,根本没有时间调整设计。
1995年5月,设计方案定稿;10月,解释器开发成功;12月,向市场推出,立刻被广泛接受,全世界的用户大量使用。
Javascript缺乏一个从小到大、慢慢积累用户的过程,而是连续的爆炸式扩散增长。
大量的既成网页和业余网页设计者的参与,使得调整语言规格困难重重。
更糟的是,Javascript的规格还没来及调整,就固化了。
1996年8月,微软公司强势介入,宣布推出自己的脚本语言Jscript;11月,为了压制微软,网景公司决定申请Javascript的国际标准;1997年6月,第一个国际标准ECMA-262正式颁布。
也就是说,Javascript推出一年半之后,国际标准就问世了。
设计缺陷还没有充分暴露就成了标准。
相比之下,C语言问世将近20年之后,国际标准才颁布。
二、Javascript的10个设计缺陷
1. 不适合开发大型程序
Javascript没有名称空间(namespace),很难模块化;没有如何将代码分布在多个文件的规范;允许同名函数的重复定义,后面的定义可以覆盖前面的定义,很不利于模块化加载。
2. 非常小的标准库
Javascript提供的标准函数库非常小,只能完成一些基本操作,很多功能都不具备。
3. null和undefined
null属于对象(object)的一种,意思是该对象为空;undefined则是一种数据类型,表示未定义。
typeof null; // object
typeof undefined; // undefined
两者非常容易混淆,但是含义完全不同。
var foo;
alert(foo == null); // true
alert(foo == undefined); // true
alert(foo === null); // false
alert(foo === undefined); // true
在编程实践中,null几乎没用,根本不应该设计它。
4. 全局变量难以控制
Javascript的全局变量,在所有模块中都是可见的;任何一个函数内部都可以生成全局变量,这大大加剧了程序的复杂性。
a = 1;
(function(){
b=2;
alert(a);
})(); // 1
alert(b); //2
5. 自动插入行尾分号
Javascript的所有语句,都必须以分号结尾。
但是,如果你忘记加分号,解释器并不报错,而是为你自动加上分号。
有时候,这会导致一些难以发现的错误。
比如,下面这个函数根本无法达到预期的结果,返回值不是一个对象,而是undefined。
function(){
return
{
i=1
};
}
原因是解释器自动在return语句后面加上了分号。
function(){
return;
{
i=1
};
}
6. 加号运算符
+号作为运算符,有两个含义,可以表示数字与数字的和,也可以表示字符与字符的连接。
alert(1+10); // 11
alert("1"+"10"); // 110
如果一个操作项是字符,另一个操作项是数字,则数字自动转化为字符。
alert(1+"10"); // 110
alert("10"+1); // 101
这样的设计,不必要地加剧了运算的复杂性,完全可以另行设置一个字符连接的运算符。
7. NaN
NaN是一种数字,表示超出了解释器的极限。
它有一些很奇怪的特性:
NaN === NaN; //false
NaN !== NaN; //true
alert( 1 + NaN ); // NaN
与其设计NaN,不如解释器直接报错,反而有利于简化程序。
8. 数组和对象的区分
由于Javascript的数组也属于对象(object),所以要区分一个对象到底是不是数组,相当麻烦。
Douglas Crockford的代码是这样的:
if ( arr &&
typeof arr === 'object' &&
typeof arr.length === 'number' &&
!arr.propertyIsEnumerable('length')){
alert("arr is an array");
}
9. == 和===
==用来判断两个值是否相等。
当两个值类型不同时,会发生自动转换,得到的结果非常不符合直觉。
"" == "0" // false
0 == "" // true
0 == "0" // true
false == "false" // false
false == "0" // true
false == undefined // false
false == null // false
null == undefined // true
" \t\r\n" == 0 // true
因此,推荐任何时候都使用"==="(精确判断)比较符。
10. 基本类型的包装对象
Javascript有三种基本数据类型:字符串、数字和布尔值。
它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。
new Boolean(false);
new Number(1234);
new String("Hello World");
与基本数据类型对应的对象类型,作用很小,造成的混淆却很大。
alert( typeof 1234); // number
alert( typeof new Number(1234)); // object
三、如何看待Javascript的设计缺陷?
既然Javascript有缺陷,数量还不少,那么它是不是一种很糟糕的语言?有没有前途?
回答是Javascript并不算糟糕,相反它的编程能力很强大,前途很光明。
首先,如果遵守良好的编程规范,加上第三方函数库的帮助,Javascript的这些缺陷大部分可以回避。
其次,Javascript目前是网页编程的唯一语言,只要互联网继续发展,它就必然一起发展。
目前,许多新项目大大扩展了它的用途,node.js使得Javascript可以用于后端的服务器编程,coffeeScript使你可以用python和ruby的语法,撰写Javascript。
最后,只要发布新版本的语言标准(比如
当然,标准的发布和标准的实现是两回事,上述的很多缺陷也许会一直伴随到Javascript 存在的最后一天。