前端 js 基础(2)

js  For In

  • for in 循环遍历 person 对象
  • 每次迭代返回一个 (x)
  • 键用于访问键的
  • 键的值为 person[x]
  • 如果索引顺序很重要,请不要在数组上使用 for in

    索引顺序依赖于实现,可能不会按照您期望的顺序访问数组值。

    当顺序很重要时,最好使用 for 循环、for of 循环或 Array.forEach()

<!DOCTYPE html>
<html>
<body><h2>JavaScript For In</h2><p>for in 语句可以遍历数组值:</p><p id="demo"></p><script>
const numbers = [45, 4, 9, 16, 25];let txt = "";
for (let x in numbers) {txt += numbers[x] + "<br>"; 
}document.getElementById("demo").innerHTML = txt;
</script></body>
</html>

js  array.for Each()

<!DOCTYPE html>
<html>
<body><h2>JavaScript Array.forEach()</h2><p>为每个数组元素调用一次函数。</p><p id="demo"></p><script>
const numbers = [45, 4, 9, 16, 25];let txt = "";
//forEach  循环 myFunction数据
numbers.forEach(myFunction);
document.getElementById("demo").innerHTML = txt;function myFunction(value, index, array) {txt += value + "<br>"; 
}
</script></body>
</html>

js  For Of 循环

JavaScript for of 语句循环遍历可迭代对象的值。

它允许您循环遍历可迭代的数据结构,例如数组、字符串、映射、节点列表等:

 遍历数组

<!DOCTYPE html>
<html>
<body><h2>JavaScript For Of 循环</h2><p>for of 语句循环遍历任何可迭代对象的值:</p><p id="demo"></p><script>
const cars = ["BMW", "Volvo", "Mini"];let text = "";
for (let x of cars) {text += x + "<br>";
}document.getElementById("demo").innerHTML = text;
</script></body>
</html>

 遍历字符串

<!DOCTYPE html>
<html>
<body><h2>JavaScript For Of 循环</h2><p>for of 语句循环遍历可迭代对象的值。</p><p id="demo"></p><script>
let language = "JavaScript";let text = "";
for (let x of language) {text += x + "<br>";
}document.getElementById("demo").innerHTML = text;
</script></body>
</html>

js Break 和 Continue

break 语句“跳出”循环。

continue 语句“跳过”循环中的一个迭代。

在本教程稍早的章节中,您已见到了 break 语句。它被用于“跳出” switch 语句。

break 语句也可用于跳出循环。

break 语句会中断循环,并继续执行循环之后的代码(如果有):

continue 语句(不论有无标签引用)只能用于跳过一个迭代

break 语句,如果没有标签引用,只能用于跳出一个循环或一个 switch

如果有标签引用,则 break 语句可用于跳出任意代码块

Break 语句 

<!DOCTYPE html>
<html>
<body><h2>JavaScript break</h2><p id="demo"></p><script>
var cars = ["BMW", "Volvo", "porsche", "Ford"];
var text = "";list: {text += cars[0] + "<br>"; text += cars[1] + "<br>"; break list;text += cars[2] + "<br>"; text += cars[3] + "<br>"; 
}document.getElementById("demo").innerHTML = text;
</script></body>
</html>

 continue

<!DOCTYPE html>
<html>
<body><p>这个循环在 i=3 时跳过这一步:</p><p id="demo"></p><script>
var text = "";
var i;
for (i = 0; i < 10; i++) {if (i === 3) { continue; }text += "数字是 " + i + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script></body>
</html>

js  typeof

在 JavaScript 中有 5 种不同的可以包含值的数据类型:

  • string
  • number
  • boolean
  • object
  • function

有 6 种类型的对象:

  • Object
  • Date
  • Array
  • String
  • Number
  • Boolean

以及 2 种不能包含值的数据类型:

  • null
  • undefined

<!DOCTYPE html>
<html>
<body><h1>JavaScript 运算符</h1><h2>typeof 运算符</h2><p>typeof 操作符返回变量、对象、函数或表达式的类型:</p><p id="demo"></p><script>
document.getElementById("demo").innerHTML = 
"'Bill' 是 " + typeof "Bill" + "<br>" +
"3.14 是 " + typeof 3.14 + "<br>" +
"NaN 是 " + typeof NaN + "<br>" +
"false 是 " + typeof false + "<br>" +
"[1, 2, 3, 4] 是 " + typeof [1, 2, 3, 4] + "<br>" +
"{name:'Bill', age:19} 是 " + typeof {name:'Bill', age:19} + "<br>" +
"new Date() 是 " + typeof new Date() + "<br>" +
"function () {} 是 " + typeof function () {} + "<br>" +
"myCar 是 " + typeof myCar + "<br>" +
"null 是 " + typeof null;
</script></body>
</html>

 

js 正则表达式

<!DOCTYPE html>
<html>
<body><h2>JavaScript 字符串方法</h2><p>请把下面的段落中的“Microsoft”替换为“W3School”:</p><button onclick="myFunction()">试一试</button><p id="demo">请访问 Microsoft!</p>
<h2>======================</h2>
<h2>JavaScript 正则表达式</h2><p>检索下面段落中的一个 "e":</p><p id="p01">The best things in life are free!</p><p id="demo1"></p><script>
//初始数据定义在里边和外边 都可以
//var str = document.getElementById("demo").innerHTML; 
function myFunction() {var str = document.getElementById("demo").innerHTML; var txt = str.replace("Microsoft","W3School");document.getElementById("demo").innerHTML = txt;
}
//<h2>======================</h2>text = document.getElementById("p01").innerHTML; 
//整的表达式 搜索text 里边的 e 有 返回true 
document.getElementById("demo1").innerHTML = /e/.test(text);
</script></body>
</html>

js  错误 - Throw 和 Try to Catch

try 语句使您能够测试代码块中的错误。

catch 语句允许您处理错误。

throw 语句允许您创建自定义错误。

finally 使您能够执行代码,在 try 和 catch 之后,无论结果如何。

<!DOCTYPE html>
<html>
<body><p>请输入 5 到 10 之间的数字:</p><input id="demo" type="text">
<button type="button" onclick="myFunction()">检测输入</button>
<p id="p01"></p><script>
function myFunction() {
// 另一种写法  var message , x ;var  x;var message;//渲染 p01数据  就是返回的输入值message = document.getElementById("p01");message.innerHTML = "";//输入框的字 进行大小比较 // x是你输入框的值x = document.getElementById("demo").value;try { if(x == "")  throw "是空的";if(isNaN(x)) throw "不是数字";x = Number(x);if(x < 5)  throw "太小";if(x > 10)   throw "太大";}catch(err) {message.innerHTML = "输入:" + err;}finally {document.getElementById("demo").value = "";}
}
</script></body>
</html>

 

js 作用域 

全局作用域

<!DOCTYPE html>
<html>
<body><h1>JavaScript 全局作用域</h1><p>可以从任何脚本或函数中访问全局变量。</p><p id="demo"></p><script>
var carName = "porsche";
myFunction();function myFunction() {document.getElementById("demo").innerHTML ="I can display " + carName;
}
</script></body>
</html>

 

局部作用域

<!DOCTYPE html>
<html>
<body><h1>JavaScript 局部作用域</h1><p>myFunction() 之外的 carName 未定义。</p>
<button type="button" onclick="myFunction()">检测输入</button>
<p id="demo1"></p><p id="demo2"></p><script>// 如果我在这不想使用点击按钮  也可以初始值
//myFunction() function myFunction() {var carName = "porsche";document.getElementById("demo1").innerHTML =typeof carName + " " + carName;
}document.getElementById("demo2").innerHTML =
typeof carName;
</script></body>
</html>

 

js Hoisting 

<!DOCTYPE html>
<html>
<body><p id="demo"></p>================
<p id="demo1"></p><script>
var x = 5; // 初始化 x
var y = 7; // 初始化 yelem = document.getElementById("demo"); // 查找元素
elem.innerHTML = x + " " + y;       // 显示 x 和 yvar x1 = 5; // 初始化 x
var y1;   // 声明 yelem = document.getElementById("demo1"); // 查找元素
elem.innerHTML = x1 + " " + y1;       // 显示 x 和 y
// y1  没有提前声明  所以 undefinedy1 = 7;   // Assign 7 to y</script></body>
</html>

js this指向问题

this 是什么?

JavaScript this 关键词指的是它所属的对象。

它拥有不同的值,具体取决于它的使用位置:

  • 在方法中,this 指的是所有者对象。
  • 单独的情况下,this 指的是全局对象。
  • 在函数中,this 指的是全局对象。
  • 在函数中,严格模式下,this 是 undefined。
  • 在事件中,this 指的是接收事件的元素。

像 call() 和 apply() 这样的方法可以将 this 引用到任何对象。

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

 

显式函数绑定

call() 和 apply() 方法是预定义的 JavaScript 方法。

它们都可以用于将另一个对象作为参数调用对象方法。

您可以在本教程后面阅读有关 call() 和 apply() 的更多内容。

在下面的例子中,当使用 person2 作为参数调用 person1.fullName 时,this 将引用 person2,即使它是 person1 的方法

<!DOCTYPE html>
<html>
<body><h1>JavaScript <b>this</b> 关键词</h1><p>在本例中,<strong>this</strong> 引用 person2,即使它是 person1 的方法:</p><p id="demo"></p>===========
<p id="demo1"></p><script>
var person1 = {fullName: function() {return this.firstName + " " + this.lastName;}
}
var person2 = {firstName:"Bill",lastName: "Gates",
}
var x = person1.fullName.call(person2); 
document.getElementById("demo").innerHTML = x; 
//-------------------------------------
// 创建对象:
var person11 = {firstName: "Bill",lastName : "Gates",id     : 678,fullName : function() {return this.firstName + " " + this.id;}
};// 显示来自对象的数据:
document.getElementById("demo1").innerHTML = person11.fullName();
</script></body>
</html>

js 类

<!DOCTYPE html>
<html>
<body><h1>JavaScript 类</h1><p>如何使用 JavaScript 类。</p><p id="demo"></p><script>
class Car {constructor(name, year) {this.name = name;this.year = year;}
}const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
myCar.name + " " + myCar.year;
</script></body>
</html>

 js 调试

<!DOCTYPE html>
<html>
<head>
</head><body><p id="demo"></p><p>打开调试器后,下面的代码应该在执行第三行之前停止执行。</p><script>
var x = 15 * 5;
debugger;
document.getElementById("demo").innerHTML = x;
</script></body>
</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/319413.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode每日一题】2487. 从链表中移除节点(调用栈+递归+翻转链表)

2024-1-3 文章目录 [2487. 从链表中移除节点](https://leetcode.cn/problems/remove-nodes-from-linked-list/)方法一&#xff1a;调用栈方法二&#xff1a;递归方法三&#xff1a;翻转链表 2487. 从链表中移除节点 方法一&#xff1a;调用栈 1.将所有节点按顺序压入栈中 2.从…

网页爬虫对于网络安全有哪些影响?

在当今信息爆炸的时代&#xff0c;网络已经成为人们获取信息、交流思想和开展业务的重要平台。然而&#xff0c;随着网络的普及和技术的不断发展&#xff0c;网络安全问题也日益凸显&#xff0c;其中网页爬虫对网络安全的影响不容忽视。本文将就网页爬虫对网络安全的影响进行深…

三分钟入门基于Visio的流程图绘制操作

Visio是微软旗下的一款流程图及其他框图绘制工具&#xff0c;有着广泛应用&#xff0c;其高效的展示功能和便捷快速的操作也广受认可。今天&#xff0c;我们就以最基本的流程图绘制为例来一起探索一下Visio的基础功能和用法。 声明&#xff1a;这篇教程从实用角度出发&#xf…

二、UI文件设计与运行机制

一、UI文件设计与运行机制 1、创建工程 2、添加控件&#xff0c;实现按钮点击 &#xff08;1&#xff09;添加控件 &#xff08;2&#xff09;添加信号和槽 2、分析项目结构 test_02test_02.pro Qt工程文件Headerswidget.h 设计的窗体类的头文件Sourcesmain.cpp 主程序入…

C++_find 统计一个单词 在一段文中出现的次数

注解: 使用y.find(x, n)从位置n开始在字符串y中查找子串x首次出现的位置。如果找到了子串x&#xff0c;则find()函数会返回该子串在y中的起始索引&#xff08;位置&#xff09;&#xff0c;否则返回-1&#xff08;或npos&#xff09;表示未找到。当find()函数返回非-1值时&…

DHTMLX Spreadsheet v5.1.1 Crack

DHTMLX Spreadsheet 5.1 具有新主题、简化的数字格式本地化、与框架的实时集成演示等 推出 DHTMLX Spreadsheet v5.1。新版本提供了一组有用的功能&#xff0c;这对开发人员和最终用户都有吸引力。 首先&#xff0c;新的电子表格版本提供了 4 个内置主题&#xff0c;可以根据您…

VS2022 创建windows服务-Windows Service

vs2022 2023等版本出现&#xff0c;似乎被忘记的早期的Windows Service服务是如何创建的呢&#xff1f;本文介绍了如何用新版本VS进行C#创建、安装、启动、监控、卸载简单的Windows Service 的内容步骤和注意事项。windows服务可以在windows中自动运行。 一、创建一个Windows …

Netty实战(待完善)

Netty组件 1. Bootstrap, ServerBootstrap Netty 中 Bootstrap 类是客户端程序的启动引导类&#xff0c;ServerBootstrap 是服务端启动引导类。 2. NioEventLoop, NioEventLoopGroup NioEventLoop 中维护了一个线程和任务队列&#xff0c;支持异步提交执行任务&#xff0c;…

全面开花!聚铭网络入选《ISC 2023数字安全创新能力全景图谱》10大细分领域

日前&#xff0c;《ISC 2023数字安全创新能力全景图谱》重磅出炉&#xff0c;聚铭网络凭借多元化的产品和卓越的创新能力&#xff0c;成功上榜全景图10大细分领域&#xff0c;多项细分领域的入围再一次彰显了聚铭网络过硬的综合安全实力。 据悉&#xff0c;此次全景图是ISC平台…

修改选择框el-select样式,显示及下拉样式

修改选择框el-select样式,显示及下拉样式 .el-input__inner {background: rgba(25, 126, 195, 0.2);border: none;color: #fff; }.el-select-dropdown {background: rgba(19, 73, 104, 0.79);border: 2px solid #48e3ff;border-radius: 0; }.el-popper .popper__arrow {display…

厦门大学OpenHarmony技术俱乐部开创“1+N”新模式,加速推动产学研融合

12月29日,OpenHarmony技术俱乐部再添重将——在多方见证下,厦门大学OpenHarmony技术俱乐部在翔安校区益海嘉里楼报告厅正式揭牌成立,现场出席领导及师生代表近千人。 成立仪式现场 OpenHarmony技术俱乐部 携手厦门大学共绘开源生态新图景 OpenHarmony是由开放原子开源基金…

可视化工作流任务管理

​Leangoo领歌一款永久免费的看板管理工具。提供私有部署。 Leangoo领歌覆盖了敏捷研发全流程&#xff0c;它提供端到端敏捷研发管理解决方案&#xff0c;包括小型团队敏捷开发&#xff0c;规模化敏捷SAFe&#xff0c;Scrum of Scrums大规模敏捷&#xff0c;涵盖敏捷需求管理、…