整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript引领现代Web的瑰丽革新,无可替

JavaScript引领现代Web的瑰丽革新,无可替代的重要性不容忽视!

语:如今,Web已经成为人们生活中不可或缺的一部分。而JavaScript,作为Web开发中的重要角色,正以其火爆的表现引领着现代Web的瑰丽革新。今天,就让我们一起深入剖析JavaScript对现代Web的作用及影响,领略这股潮流。

JavaScript的诞生及发展历史

JavaScript是一种编程语言,最初于1995年由Netscape公司的Brendan Eich创建。它是为了给Netscape Navigator提供一种脚本语言而开发的。JavaScript最初被设计成一种简单的脚本语言,用于在网页上创建动态效果和用户交互。

1996年,JavaScript被正式引入到了ECMAScript标准中,这使得它可以在不同的浏览器和平台上运行。

1997年,ECMAScript 1被引入,增加了许多新功能和语法改进。

1998年,ECMAScript 2被引入,带来了一些新的功能和改进。

1999年,ECMAScript 3被引入,增加了更多的新功能和语法改进,包括变量声明、字符串处理等。

2007年,ECMAScript 4被提出,计划引入更严格的语言规范和面向对象编程的特性。然而,由于不同浏览器和平台对ECMAScript的实现在当时存在较大差异,ECMAScript 4的提议遭到了反对,最终没有成为正式标准。

2009年,Google推出了Chrome浏览器,并引入了V8 JavaScript引擎。V8引擎的出现极大地提高了JavaScript的性能,使得JavaScript成为了一种能够用于构建复杂应用的编程语言。

2011年,ECMAScript 5被引入,增加了一些新功能和改进,例如严格模式、数组方法等。

2015年,ECMAScript 6(也称为ECMAScript 2015)被引入,引入了大量的新功能和语法改进,包括类、模块、箭头函数、解构赋值等。

之后,每年都有新的ECMAScript标准被引入,带来了更多的新功能和改进。JavaScript如今已经成为了网页和Web应用开发中不可或缺的一部分。

JavaScript对现代web的作用及影响

  1. 实现交互性:聚焦用户体验,JavaScript可以为网页注入无限的交互性。无论是点击按钮、填写表单还是修改页面内容,用户与网页之间的互动愈发生动感十足,如沐春风。
  2. 动态加载内容:告别单调乏味的静态网页,JavaScript以其异步加载数据和内容的Ajax技术,使得网页实现动态更新。用户流畅的浏览体验正逐渐成为Web的新常态。
  3. 控制网页样式:JavaScript可以动态地修改网页样式,包括元素的大小、颜色、位置等,使网页拥有更丰富的视觉效果。
  4. 处理表单验证:JavaScript可以通过表单验证机制,检查用户输入的数据是否符合要求,提高表单数据的准确性和合法性。
  5. 构建前端框架和库:JavaScript的红火,也带动了一众前端框架和库的兴起,其中包括React、Vue、Angular等。这些框架和库为开发者提供了丰富的功能与组件,极大地简化了开发流程,可谓助力开发者创作出独一无二的Web精品。
  6. 与服务器交互:通过JavaScript的XMLHttpRequest对象或Fetch API,可以与服务器进行数据交互,发送异步请求并处理服务器返回的数据。
  7. Cookie和localStorage:JavaScript可以操作Cookie和localStorage,实现在浏览器中存储和读取数据,提供持久化的数据存储功能。
  8. 创建和操作DOM:JavaScript可以通过创建和操作DOM(文档对象模型)来改变网页的结构和内容,实现动态生成和删除元素,更新网页内容。
  9. 事件处理:JavaScript可以捕获和处理网页中发生的各种事件,如点击、滚动、键盘输入等,实现对用户行为的响应和处理。
  10. 开发移动应用:移动应用的热潮席卷全球,而JavaScript的力量在其中也不容小觑。例如,React Native和Ionic等框架和库,让开发者能借助同一代码基础,在多个平台上构建兼容性高、效果精良的移动应用,带来前所未有的便利。
  11. 实现动画效果:动画效果的渲染,让网页生动活泼起来。JavaScript可以利用Canvas和SVG等技术,通过修改元素的位置、颜色等属性,创造出梦幻般的动画效果,让网页更加引人入胜。
  12. 增强用户体验:JavaScript借助浏览器API进行各种功能的实现,以提供最佳的用户体验。比如,通过浏览器的地理位置API获取用户的实时位置信息,或借助浏览器的通知API,实现个性化推送通知,令用户畅享便捷和个性化服务,纵享舒心感官盛宴。

总结:简直不敢想象,如果没有JavaScript,现代Web会是怎样无趣、乏味的世界。它的重要性不可替代,影响力不可小觑。JavaScript引领现代Web的瑰丽革新,让Web与用户之间的互动愈发融洽,带来无尽的惊喜和乐趣。未来,随着技术的不断进步,JavaScript必将持续创新,为Web的未来发展注入更多的活力与魅力!

ps:持续更新,期待下一期内容!

常,作为开发人员,我们会编写类似类型的代码,陷入一种虽然舒适但有时感觉很平凡的模式。

然而,JavaScript 的世界是广阔的,充满了高级功能,当发现和使用这些功能时,可以将我们的开发工作变得更加令人兴奋和充实。

在本指南中,我们将揭晓 25 个高级 JavaScript 功能,这些功能不仅能揭示这些隐藏的瑰宝,还能将您对 JavaScript 的掌握提升到前所未有的水平。

让我们一起踏上这段发现之旅,将 JavaScript 的高级功能集成到我们的编码库中,以创建更高效?、更优雅、更强大的应用程序。是时候为我们的开发任务注入新的乐趣和创造力了。

1 — 循环和块语句的标签

JavaScript 允许标记循环和块语句,从而可以使用 和 进行精确break控制continue。

outerLoop: for (let i=0; i < 5; i++) {
    innerLoop: for (let j=0; j < 5; j++) {
        if (i===2 && j===2) break outerLoop;
        console.log(`i=${i}, j=${j}`);
    }
}

2 — 逗号运算符

逗号运算符允许按序列计算多个表达式,并返回最后一个表达式的结果。

let a=(1, 2, 3); // a=3

3 — 字符串格式化之外的标记模板文字

除了创建字符串之外,标记模板还可用于 DSL(域特定语言)、清理用户输入或本地化。

function htmlEscape(strings, ...values) {
    // Example implementation
}

4 — 块内的函数声明

尽管不推荐,但 JavaScript 允许在块内声明函数,这可能会导致非严格模式下的不同行为。

if (true) {
    function test() { return "Yes"; }
} else {
    function test() { return "No"; }
}
test(); // Behavior varies depending on the environment

5 — 无效运算符

该void运算符计算任何表达式,然后返回 undefined,这对于 JavaScript 的超链接很有用。

void (0); // returns undefined

6 — 用于快速数学的按位运算符

位运算符(例如|and &)可以更快地执行某些数学运算,但会牺牲可读性。

let floor=5.95 | 0; // Fast way to do Math.floor(5.95)

7 — with 处理对象的语句

该with语句扩展了块的作用域链,允许您编写更短的代码。但是,出于可读性和性能方面的考虑,不建议这样做。

with(document.getElementById("myDiv").style) {
    background="black";
    color="white";
}

与 Christian Heilmann 一起提高您的 JavaScript 技能 - 从今天开始编写更干净、更快、更好的代码!

8 — 自动分号插入 (ASI)

JavaScript 尝试修复缺失的分号,但依赖它可能会导致意外结果。

let x=1
let y=2
[x, y]=[y, x] // Without proper semicolons, this could fail

9 — 在属性检查操作员中

检查对象是否具有属性,而无需直接访问其值。

"toString" in {}; // true

10——instanceof 与 typeof

instanceof检查原型链,同时typeof返回一个字符串,指示未计算的操作数的类型。

function Person() {}
let person=new Person();
console.log(person instanceof Person); // true
console.log(typeof person); // "object"

11 — ES6 中的块级函数

ES6允许函数具有块作用域,类似于let和const。

{
    function test() {
        return "block scoped";
    }
}
console.log(typeof test); // "function" in non-strict mode, "undefined" in strict mode

12 — 调试器语句

使用该debugger语句暂停执行并打开调试器。

function problematicFunction() {
    debugger; // Execution pauses here if the developer tools are open
}

13 —eval()用于动态代码执行

eval将字符串作为 JavaScript 代码执行,但会带来重大的安全性和性能影响。

eval("let a=1; console.log(a);"); // 1

利用 InMotion Hosting 的一系列计划(从共享服务器到 VPS 以及专用服务器)为您的项目找到合适的托管解决方案。

14 — 非标准__proto__财产

虽然__proto__广泛支持设置对象的原型,但它是非标准的。使用Object.getPrototypeOf()andObject.setPrototypeOf()代替。

let obj={};
obj.__proto__=Array.prototype; // Not recommended

15 — document.write() 用于直接文档编辑

document.write()直接写入 HTML 文档,但使用它可能会产生负面影响,特别是对于同步加载外部脚本。

document.write("<h1>Hello World!</h1>");

16 — 链式分配

JavaScript 允许链式赋值,它可以在一个语句中将单个值分配给多个变量。

let a, b, c;
a=b=c=5; // Sets all three variables to the value of 5

17 — 属性存在的 in 运算符

该in运算符检查对象中是否存在属性,而无需访问属性值。

const car={
    make: 'Toyota',
    model: 'Corolla'
};
console.log('make' in car); // true

18 — 对象属性简写

为对象分配属性时,如果属性名称与变量名称相同,则可以使用简写。

const name='Alice';
const age=25;
const person={ name, age };

19 — 默认参数值和解构组合

您可以将默认参数值与函数参数中的解构结合起来,以获得更具可读性和更灵活的函数定义。

function createPerson({ name='Anonymous', age=0 }={}) {
   console.log(`Name: ${name}, Age: ${age}`);
}
createPerson({ name: 'Alice' }); // Name: Alice, Age: 0
createPerson(); // Name: Anonymous, Age: 0

20 — 使用Array.fill()初始化数组

使用该方法快速初始化具有特定值的数组fill()。

const initialArray=new Array(5).fill(0); // Creates an array [0, 0, 0, 0, 0]

利用可调节 LED 照明优化您的工作空间,提高工作效率和舒适度,为专注的工作会议创造理想的环境。

21 —Array.includes()用于存在检查

使用 方法可以轻松检查数组中是否存在元素includes(),这比使用 更具可读性indexOf()。

const fruits=['apple', 'banana', 'mango'];
console.log(fruits.includes('banana')); // true

22 — 解构别名

当destructuring一个对象时,您可以使用别名将属性分配给具有不同名称的变量。

const obj={ x: 1, y: 2 };
const { x: newX, y: newY }=obj;
console.log(newX); // 1

23 — 默认值的空合并运算符

??仅在处理null或时用于提供默认值undefined,而不是其他falsy值,例如

const count=0;
console.log(count ?? 10); // 0, because count is not null or undefined

24 — 动态函数名称

使用对象字面量中的计算属性名称创建具有动态名称的函数。

const dynamicName='func';
const obj={
    [dynamicName]() {
        return 'Dynamic Function Name!';
    }
};
console.log(obj.func()); // "Dynamic Function Name!"

25 — 私有类字段

使用哈希#前缀定义类中的私有字段,该字段无法从类外部访问。

class Counter {
    #count=0;

    increment() {
        this.#count++;
    }

    getCount() {
        return this.#count;
    }
}

总结

当我们结束对 25 个 JavaScript 高级功能的探索时,JavaScript 的库既庞大又强大。

我们深入研究的每个功能都为解决编码挑战开辟了新途径,类似于在我们的工具包中添加创新工具。

这不仅增强了我们创造性、高效地制定解决方案的能力,而且还强调了 JavaScript 的动态多功能性。

这些高级功能凸显了持续学习在 Web 开发领域的关键作用。

接受这些细微差别并将它们集成到我们的日常编码实践中,使我们能够提高我们的技能并为网络技术的发展做出贡献。

请记住,掌握 JavaScript 的道路是一个持续的旅程,每一行代码都提供了发现非凡事物的机会。

让我们不断突破 JavaScript 所能实现的极限,保持好奇心并对未来的无限可能性保持开放态度。

、html概述

1、html标签是用来给文本添加语义的,而不是用来修饰文本的;

2、<meta charset="GBK">指定字符集(GB2312、UTF-8),html保存和指定字符一样,才不会乱码;

3、<!DOCTYPE html> DTD文档申明告诉浏览器我用的什么协议来写的,不是html标签;

4、webstorm快捷键大全:https://www.cnblogs.com/yeminglong/p/5995421.html

二、基础标签

1、h、p 和 hr 标签

  • 三个标签都是占一行

2、注释:<!-- -->

3、图片:<img src=" ">

  • 不会独占一行;
  • 保证不变形,指定宽或者高即可;
  • title 和 alt 属性;
  • src 可以是相对路径(../ 上一级)和绝对路径,路径中尽量不含中文,相对路径不可跨盘符,路径分隔统一写 / ,绝对路径的可移植性不好;

4、换行:<br> 用于内容未完的换行

5、跳转:<a href=" "></a>

  • 支持文字和图片的跳转;
  • 地址必须加 http 或者 https;
  • href 可以指定本地的地址;
  • target(_self 和 _blank) 属性控制跳转是否打开新的选项卡;
  • title 提示作用;

6、base 标签:<base target="_self ">

  • 统一指定 a 标签怎么打开,写在 head 中

7、假链接:点击不会跳转

  • a 标签的 href 属性值为 # 或者 javascript
  • # 会跳转到页面的顶部,而 js 不会

8、锚点:<a href="#id值"><\a>

  • 可以跳转到页面的指定位置
  • 可以跳转到其他页面的指定位置,只需在 # 前面加上页面的路径即可
  • 跳转无过度动画

三、列表标签

1、无序列表(!)

  • <ul><li><\li><\ul>;
  • 整体不可分割;
  • ul 除了 li 不建议再加其他的标签,li 标签中可以放其他标签来丰富内容;
  • li 中还可嵌套列表;
  • ws快捷生成 ul>li*3>h2+p;

2、有序列表(*)

  • <ol><li><\li><\ol>;

3、定义列表

?

  • dt 是标题,dd 是具体的描述;
  • 推荐一个 dt 一个 dd ,也可以一个 dt 对多个 dd 或者没有 dd;
  • dl 中不建议加其他标签,二 dt 和 dd 可以加;
  • 应用:网站尾部,图文混排(仿京东做个网站的尾部);

四、表格标签

1、格式

?

  • 表格的边框默认不显示(border)

2、属性

(1)宽高

  • table 和 td 可用;
  • 默认高宽根据内容调整;
  • td 设置高宽只会改变当前单元格的状态,而不会改变 table 的高宽;

(2)水平和垂直对齐(align 和 valign)

  • 水平对齐三个都可以用,而垂直对齐针对 tr 和 td;
  • table 设置 align 控制表格在水平方向的对齐,给 tr 和 td 设置都是控制单元格里的内容的对齐方式,不过 tr 影响一行,td 影响一个,tr 和 td 都设置 td 会覆盖 tr 的效果;
  • tr 和 td 设置 valign 都是控制单元格内容的垂直方向的对齐,不过 tr 影响一行,td 影响一个,tr 和 td 都设置 td 会覆盖 tr 的效果;

(3)内边距和外边距(cellpadding 和 cellspacing)

  • 两个属性都是 table 的;
  • 外边距是指格子与格子之间的空隙,而内边距是指格子与文字之间的间隙;

(4)细线表格

  • 先给 table 设置 bgcolor;
  • 再给 tr 设置 bgcolor;
  • 最后 table 设置 cellspacing;

3、表格的其他标签

(1)caption:表格的标题标签,必须写在 table 内而且需紧跟 table

(2)th:th 和 td 同级,th 有加粗的效果

4、表格的结构

(1)组成:caption 标题、thead 表头、tbody 主体、tfoot 尾部

(2)说明:

  • 浏览器自动添加 tbody;
  • table 设置高度后,tfoot 和 thead 的高度是不会变化的;

5、单元格的合并

(1)水平方向:td 属性 colspan="2";

(2)垂直方向:td 属性 rowspan="2";

五、表单标签

1、格式

?

2、input 标签

(1)type=text:

(2)password:

(3)radio:互斥要设置 name 相同;默认选中 checked

(4)checkbox:选中 checked

(5)button:

(6)image:

(7)reset:value 修改标题

(8)submit:

  • form 的 action 确定提交的地址
  • 提交数据加 name 属性

(9)hidden:

-----------------------------------------------------------------------------------------------------------------------

*相关标签:

  • label 标签:让文字与 input 标签绑定;两种绑定的方式:

?

  • datalist 标签:给输入框绑定输入的提示:<datalist><option>haha</option></datalist>
  • h5 中新增的 input 标签:email 、url 、number 、color、date(浏览器的支持不好)

3、非 input 标签

(1)select

?

(2)textarea

  • cols 和 rows 指定输入的行列,但是还是可以无限输入
  • 默认可拉伸,也可通过 css 固定大小

4、练习

(1)表单标签除了 button 外都可以用 value 来指定提交的值

(2)表单添加边框可以在 form 中添加 fieldset 来实现

六、多媒体标签

1、video 标签

(1)格式:<video src=" " autoplay="autoplay"></video>;

(2)属性:controls(控制条)poster(海报)loop(循环)preload(预加载,与autoplay冲突)muted(静音)width/height;

3)另一种 video 格式:解决浏览器的兼容

?

(4)让所有的浏览器支持 video 标签:通过 js 框架来实现

2、audio 标签

(1)使用基本和 video 一样,属性只有宽高和 poster 不能用,也是两种格式

3、details 和 summary 标签

(1)格式:

?

4、marquee标签(跑马灯效果)

(1)w3c 不推荐,但是浏览器的支持好

(2)属性:direction(方向)scrollamount(滚动的速度)loop(滚动次数,默认-1)behavior(滚动类型 slide)

(3)废弃的标签:<br><hr><font><b>加粗<u>下划线<i>斜体<s>删除线(无语义)

替代的标签:<strong><ins><em><del>(加入了语义)

5、字符实体

(1)&nbsp;空格 &lt;&gt; &copy;版权符号

(2)理解:html 占用了的不显示的特殊字符用另外的代替符号表示,使他们正常在 html 页面上显示