《JavaScript设计与开发新思维》——1.7 JavaScript编程目标

简介: 开始一次新的尝试时,不管是第一次学习JavaScript还是为了学习更好、更现代的JavaScript技术,都应该设定一些目标。网站的目的当然是为了让客户(使用Web浏览器的最终用户)查看和使用。如果访问者无法使用一个网站,你作为Web开发人员的工作就失败了。

本节书摘来自异步社区《JavaScript设计与开发新思维》一书中的第1章,第1.7节,作者:【美】Larry Ullman著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.7 JavaScript编程目标

开始一次新的尝试时,不管是第一次学习JavaScript还是为了学习更好、更现代的JavaScript技术,都应该设定一些目标。网站的目的当然是为了让客户(使用Web浏览器的最终用户)查看和使用。如果访问者无法使用一个网站,你作为Web开发人员的工作就失败了。朝着这个目标,网站的功能应该在所有浏览器上都能实现,包括移动设备上的浏览器、非可视化浏览器、禁用JavaScript的浏览器和旧的浏览器。完成这一目标比你想象的更容易,这要归功于渐进增强(progressive enhancement)方法。

渐进增强指的是创建可靠的基本功能,然后在支持增强功能的浏览器上改进的过程。例如,处理表单提交的标准方法是将表单数据发送给服务器端资源(参见图1.3)。前面已经讨论过,JavaScript能够使用Ajax完成相同的功能(参见图1.5)。渐进增强意味着你应该首先实现标准的方法,然后在可能的时候拦截这一方法。本书从下一章开始将不断地阐述渐进增强的实施。

这并不是说不能合理地排除一些用户。例如,在老式浏览器上HTML5的奇妙功能不可能正确地表现,iOS设备(iPod、iPad和iPhone)不支持Flash。如果一个网站绝对需要Flash,就必须意识到,有许多人将被排除在外。但是对于大部分网站来说,目标应该是支持尽可能多的浏览器。

一个网站不但应该在任何浏览器上都能工作,而且不应该试图破坏浏览器的常规表现。多年来,JavaScript程序员曾经阻止用户单击“返回”按钮、使用浏览器历史、访问上下文菜单等。对于大部分情况来说,JavaScript应该改进用户体验,而不是彻底改变它。没有什么正当的理由让浏览器以不同于用户所习惯的方式工作。(至少,如果你的网站依赖于禁用常见的浏览器行为,当一位没有JavaScript的用户访问时你就会遇到麻烦。)

其次,为了使代码更容易维护,你应该采用无干扰(unobtrusive)JavaScript技术。这一术语指的是将JavaScript代码与HTML页面分离,第2章将从这种技术对实际代码的影响开始讨论。

最后,现代的JavaScript编程应该适合于整个Web的当前状态。可以将它看作一个模范公民或者好的父母:展现应有的质量。这不只适用于JavaScript,也适用于HTML和CSS。第2章将确立这一目标的某些特性,例如采用语义HTML。

这些是现代JavaScript编程的目标。本书的目标是在实际代码中正确地实现这些目标,同时将JavaScript当作一种语言来教。

相关文章
|
15天前
|
开发框架 JavaScript 安全
js开发:请解释什么是Express框架,以及它在项目中的作用。
【4月更文挑战第24天】Express是Node.js的Web开发框架,简化路由管理,支持HTTP请求处理。它包含中间件系统用于日志、错误处理和静态文件服务,集成多种模板引擎如EJS、Jade、Pug。框架还提供安全中间件提升应用安全,并具有良好的可扩展性,便于项目功能扩展和开发效率提升。
25 3
|
15天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
21 3
|
15天前
|
JavaScript 前端开发
js开发:请解释什么是ES6的async/await,以及它如何解决回调地狱问题。
ES6的async/await是基于Promise的异步编程工具,简化了代码并提高可读性。它避免回调地狱,将异步操作转化为Promise,使得代码同步化。错误处理更直观,无需嵌套回调或.then()。
18 1
|
15天前
|
JavaScript 前端开发 编译器
js开发: 请解释什么是Babel,以及它在项目中的作用。
**Babel是JavaScript编译器,将ES6+代码转为旧版JS以保证兼容性。它用于前端项目,功能包括语法转换、插件扩展、灵活配置和丰富的生态系统。Babel确保新特性的使用而不牺牲浏览器支持。** ```markdown - Babel: JavaScript编译器,转化ES6+到兼容旧环境的JS - 保障新语法在不同浏览器的运行 - 支持插件,扩展编译功能 - 灵活配置,适应项目需求 - 富强的生态系统,多样化开发需求 ```
16 4
|
16天前
|
JavaScript 前端开发
js开发:请解释原型继承和类继承的区别。
JavaScript中的原型继承和类继承用于共享对象属性和方法。原型继承通过原型链实现共享,节省内存,但不支持私有属性。
19 0
|
16天前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素传递,而事件捕获则从外层元素向内层传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。示例代码展示了如何设置。
24 2
|
2天前
|
JavaScript 前端开发 测试技术
在JS编程中常见的编程“套路”或习惯汇总
在当前技术圈快速迭代发展的时代,JavaScript是一种广泛应用于Web开发和移动应用开发的脚本语言,其重要性愈发凸显,尤其是随着技术的不断发展和应用场景的不断扩展,JS编程已经成为了许多开发者必备的技能之一。但是仅仅掌握JS语法和基本知识并不足够,为了写出高质量、可靠性和可维护性的代码,开发者需要掌握一些常见的编程"套路"或习惯,这些套路和习惯能够帮助开发者更好地组织和管理代码,提高开发效率,并减少潜在的错误和问题。在JS编程开发中,有一些常见的编程“套路”或习惯,可以帮助开发者编写高效、可维护且易于理解的代码。让我们来看看其中一些常见的编程“套路”或习惯。那么本文就来分享探讨在JS编程中
22 6
在JS编程中常见的编程“套路”或习惯汇总
|
5天前
|
JavaScript 前端开发 C语言
JavaScript编程语法练习
本篇文章是对于javaScript中if ,switch,while ,do-while,,for语法的作业练习.对于我来说也是对自己知识掌握的一种检验.是对js的基础语法进行的一次练习,通过有趣的示例进行练习,使得对于代码能够增加印象,对于知识的掌握更加透彻.
|
9天前
|
开发框架 JavaScript 前端开发
【JavaScript 与 TypeScript 技术专栏】TypeScript 在 Web 开发中的前沿应用
【4月更文挑战第30天】TypeScript在Web开发中日益重要,以其强大的类型系统提升代码质量,支持组件化开发,与React、Vue、Angular等框架良好集成。在大型项目管理中,TypeScript助于代码组织和优化,提高团队协作效率。此外,它提升开发体验,提供智能提示和错误检测。众多成功案例证明其前沿应用,未来将在Web开发领域持续发挥关键作用。
|
9天前
|
JavaScript 前端开发 IDE
【JavaScript与TypeScript技术专栏】TypeScript在JavaScript库与框架开发中的作用
【4月更文挑战第30天】TypeScript,微软开发的JavaScript超集,以其强类型和面向对象特性,正成为提升Web项目质量和效率的关键工具,尤其在库和框架开发中。它通过类型系统减少运行时错误,提供内置文档,便于重构,增强IDE支持,以及支持模块化。流行框架如React、Angular已支持TypeScript,未来有望成为开发高质量库和框架的标准语言。随着社区增长,TypeScript将在Web开发领域扮演更重要角色。