語:如今,Web已經成為人們生活中不可或缺的一部分。而JavaScript,作為Web開發中的重要角色,正以其火爆的表現引領著現代Web的瑰麗革新。今天,就讓我們一起深入剖析JavaScript對現代Web的作用及影響,領略這股潮流。
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會是怎樣無趣、乏味的世界。它的重要性不可替代,影響力不可小覷。JavaScript引領現代Web的瑰麗革新,讓Web與用戶之間的互動愈發融洽,帶來無盡的驚喜和樂趣。未來,隨著技術的不斷進步,JavaScript必將持續創新,為Web的未來發展注入更多的活力與魅力!
ps:持續更新,期待下一期內容!
常,作為開發人員,我們會編寫類似類型的代碼,陷入一種雖然舒適但有時感覺很平凡的模式。
然而,JavaScript 的世界是廣闊的,充滿了高級功能,當發現和使用這些功能時,可以將我們的開發工作變得更加令人興奮和充實。
在本指南中,我們將揭曉 25 個高級 JavaScript 功能,這些功能不僅能揭示這些隱藏的瑰寶,還能將您對 JavaScript 的掌握提升到前所未有的水平。
讓我們一起踏上這段發現之旅,將 JavaScript 的高級功能集成到我們的編碼庫中,以創建更高效?、更優雅、更強大的應用程序。是時候為我們的開發任務注入新的樂趣和創造力了。
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}`);
}
}
逗號運算符允許按序列計算多個表達式,并返回最后一個表達式的結果。
let a=(1, 2, 3); // a=3
除了創建字符串之外,標記模板還可用于 DSL(域特定語言)、清理用戶輸入或本地化。
function htmlEscape(strings, ...values) {
// Example implementation
}
盡管不推薦,但 JavaScript 允許在塊內聲明函數,這可能會導致非嚴格模式下的不同行為。
if (true) {
function test() { return "Yes"; }
} else {
function test() { return "No"; }
}
test(); // Behavior varies depending on the environment
該void運算符計算任何表達式,然后返回 undefined,這對于 JavaScript 的超鏈接很有用。
void (0); // returns undefined
位運算符(例如|and &)可以更快地執行某些數學運算,但會犧牲可讀性。
let floor=5.95 | 0; // Fast way to do Math.floor(5.95)
該with語句擴展了塊的作用域鏈,允許您編寫更短的代碼。但是,出于可讀性和性能方面的考慮,不建議這樣做。
with(document.getElementById("myDiv").style) {
background="black";
color="white";
}
與 Christian Heilmann 一起提高您的 JavaScript 技能 - 從今天開始編寫更干凈、更快、更好的代碼!
JavaScript 嘗試修復缺失的分號,但依賴它可能會導致意外結果。
let x=1
let y=2
[x, y]=[y, x] // Without proper semicolons, this could fail
檢查對象是否具有屬性,而無需直接訪問其值。
"toString" in {}; // true
instanceof檢查原型鏈,同時typeof返回一個字符串,指示未計算的操作數的類型。
function Person() {}
let person=new Person();
console.log(person instanceof Person); // true
console.log(typeof person); // "object"
ES6允許函數具有塊作用域,類似于let和const。
{
function test() {
return "block scoped";
}
}
console.log(typeof test); // "function" in non-strict mode, "undefined" in strict mode
使用該debugger語句暫停執行并打開調試器。
function problematicFunction() {
debugger; // Execution pauses here if the developer tools are open
}
eval將字符串作為 JavaScript 代碼執行,但會帶來重大的安全性和性能影響。
eval("let a=1; console.log(a);"); // 1
利用 InMotion Hosting 的一系列計劃(從共享服務器到 VPS 以及專用服務器)為您的項目找到合適的托管解決方案。
雖然__proto__廣泛支持設置對象的原型,但它是非標準的。使用Object.getPrototypeOf()andObject.setPrototypeOf()代替。
let obj={};
obj.__proto__=Array.prototype; // Not recommended
document.write()直接寫入 HTML 文檔,但使用它可能會產生負面影響,特別是對于同步加載外部腳本。
document.write("<h1>Hello World!</h1>");
JavaScript 允許鏈式賦值,它可以在一個語句中將單個值分配給多個變量。
let a, b, c;
a=b=c=5; // Sets all three variables to the value of 5
該in運算符檢查對象中是否存在屬性,而無需訪問屬性值。
const car={
make: 'Toyota',
model: 'Corolla'
};
console.log('make' in car); // true
為對象分配屬性時,如果屬性名稱與變量名稱相同,則可以使用簡寫。
const name='Alice';
const age=25;
const person={ name, age };
您可以將默認參數值與函數參數中的解構結合起來,以獲得更具可讀性和更靈活的函數定義。
function createPerson({ name='Anonymous', age=0 }={}) {
console.log(`Name: ${name}, Age: ${age}`);
}
createPerson({ name: 'Alice' }); // Name: Alice, Age: 0
createPerson(); // Name: Anonymous, Age: 0
使用該方法快速初始化具有特定值的數組fill()。
const initialArray=new Array(5).fill(0); // Creates an array [0, 0, 0, 0, 0]
利用可調節 LED 照明優化您的工作空間,提高工作效率和舒適度,為專注的工作會議創造理想的環境。
使用 方法可以輕松檢查數組中是否存在元素includes(),這比使用 更具可讀性indexOf()。
const fruits=['apple', 'banana', 'mango'];
console.log(fruits.includes('banana')); // true
當destructuring一個對象時,您可以使用別名將屬性分配給具有不同名稱的變量。
const obj={ x: 1, y: 2 };
const { x: newX, y: newY }=obj;
console.log(newX); // 1
??僅在處理null或時用于提供默認值undefined,而不是其他falsy值,例如
const count=0;
console.log(count ?? 10); // 0, because count is not null or undefined
使用對象字面量中的計算屬性名稱創建具有動態名稱的函數。
const dynamicName='func';
const obj={
[dynamicName]() {
return 'Dynamic Function Name!';
}
};
console.log(obj.func()); // "Dynamic Function Name!"
使用哈希#前綴定義類中的私有字段,該字段無法從類外部訪問。
class Counter {
#count=0;
increment() {
this.#count++;
}
getCount() {
return this.#count;
}
}
當我們結束對 25 個 JavaScript 高級功能的探索時,JavaScript 的庫既龐大又強大。
我們深入研究的每個功能都為解決編碼挑戰開辟了新途徑,類似于在我們的工具包中添加創新工具。
這不僅增強了我們創造性、高效地制定解決方案的能力,而且還強調了 JavaScript 的動態多功能性。
這些高級功能凸顯了持續學習在 Web 開發領域的關鍵作用。
接受這些細微差別并將它們集成到我們的日常編碼實踐中,使我們能夠提高我們的技能并為網絡技術的發展做出貢獻。
請記住,掌握 JavaScript 的道路是一個持續的旅程,每一行代碼都提供了發現非凡事物的機會。
讓我們不斷突破 JavaScript 所能實現的極限,保持好奇心并對未來的無限可能性保持開放態度。
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=" ">
4、換行:<br> 用于內容未完的換行
5、跳轉:<a href=" "></a>
6、base 標簽:<base target="_self ">
7、假鏈接:點擊不會跳轉
8、錨點:<a href="#id值"><\a>
1、無序列表(!)
2、有序列表(*)
3、定義列表
?
1、格式
?
2、屬性
(1)寬高
(2)水平和垂直對齊(align 和 valign)
(3)內邊距和外邊距(cellpadding 和 cellspacing)
(4)細線表格
3、表格的其他標簽
(1)caption:表格的標題標簽,必須寫在 table 內而且需緊跟 table
(2)th:th 和 td 同級,th 有加粗的效果
4、表格的結構
(1)組成:caption 標題、thead 表頭、tbody 主體、tfoot 尾部
(2)說明:
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:
(9)hidden:
-----------------------------------------------------------------------------------------------------------------------
*相關標簽:
?
3、非 input 標簽
(1)select
?
(2)textarea
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) ;空格 <;>; ©;版權符號
(2)理解:html 占用了的不顯示的特殊字符用另外的代替符號表示,使他們正常在 html 頁面上顯示
*請認真填寫需求信息,我們會在24小時內與您取得聯系。