Web前端开发之JavaScript_2

  • 条件语句
  • 三元运算符
  • 循环语句
  • 字符串
  • 数组

1. 条件语句

1.1 if语句

if (布尔值){                // “布尔值”往往由一个表达式产生,其中,赋值表达式不具备比较作用

        语句;

}

1.2 if...else 语句

        if...else可成对单独使用,也可多层if...else if...else if... ...else使用。if...else嵌套时,else代码块总是与离自己最近的同级if语句配对。

if (m === 0) {                  

        //....

}else if (m === 1) {

        //...

}else if (m === 2) {

        //....

}else {

        //...

}

1.3 switch 语句

switch (fruit) {                        // 可用于代替多个if..else语句

        case "banana":

        // ...

        break;

        case "apple":

        // ...

        break;

        default:

        //...

}

2. 三元运算符

        JS有一个三元运算符 ?: ,可用于逻辑判断,被视为if...else...的简写形式,用于多种场合

条件 ? 表达式1 : 表达式2

3. 循环语句

3.1 for语句

for (初始化表达式; 条件; 迭代因子) {        // 表达式可省略

        语句;

}

示例:打印九九乘法表 

<script>var sum = 0;for(var i = 1; i <= 9; i++){document.write("<br>");for(var j = 1; j <= i; j++){sum = i * j;document.write(j, "*", i, "=", sum, " ");}}</script>
3.2 while

while (条件) {                // 所有for循环都可以改写成while循环

        语句;

}

3.3 break语句和 continue语句

        两者都具有跳转作用,可以让代码不按既有顺序执行

  • break用于跳出代码块或循环

for (var i = 0; i < 5; i++) {

        if (i === 3){

                break;

        }

        console.log(i);

}

  • continue立即终止本轮循环,返回循环结构的头部,开始下一轮循环

for (var i = 0; i < 5; i++) {

        if (i === 3){

                continue;

        }

        console.log(i);

}

4. 字符串

4.1 字符串简介
  • 字符串就是零个或多个排在一起的字符,放在单引号或双引号之中
  • 单引号字符串的内部,可以使用双引号;双引号字符串内部,可以使用单引号
  • 单(双)引号字符串内部使用单(双)引号,必须加转义字符
  • 字符串默认只能写在一行内,如果必须分成多行,可以在每行尾部使用反斜杠(代码中)

length 属性返回字符串的长度,该属性是无法改变的

var s = '字符串123,string';

console.log(s.length);                        // 13

4.2 字符串方法_charAt()

        chatAt 方法返回指定位置的字符参数是从0开始编号的

var s = new String('hello');

s.charAt(1);                        // e

s.charAt(s.length - 1);        // l

// 如果参数为负数、或大于等于字符串的长度,charAt 返回空字符串 " "

4.3 字符串方法_concat()

        concat 方法用于连接两个字符串,返回一个新的字符串,不改变原字符串

var str1 = "Hello";

var str2 = "World";

var str3 = "!";

var num = 100;             // 如果参数不是字符串,会先转为字符串 100 => "100"

var result = str1.concat(str2,str3,num);                //该方法可接受多个参数

console.log(result);     // HelloWorld!100

console.log(str1);

console.log(num);        //100

// 字符串相加,不需使用concat,可使用+连接字符串

var result = str1 + str2 + str3 + num;

console.log(result);        // HelloWorld!100

concat 和 加号的区别

  • concat不管什么类型直接合并成字符串
  • 加号遇到数字类型直接做运算,遇到字符串和字符串相连接
4.4 字符串方法_substring()

        substring 方法用于从原字符串取出子字符串并返回,不改变原字符串。它的第一个参数表示子字符串的开始位置,第二个位置表示结束位置(返回结果不含该位置)

  • 如果省略第二个参数,则表示子字符串一直到原字符串的结束
  • 如果第一个参数大于第二个参数,substring 方法会自动更换两个参数的位置
  • 如果参数是负数,substring 方法会自动将负数转为0
4.5 字符串方法_substr()

        substr 方法用于从原字符串取出子字符串并返回,不改变原字符串,跟substring 方法作用相同。substr 方法第一个参数是子字符串开始位置,第二个参数是子字符串的长度

  • 如果省略第二个参数,则表示子字符串一直到原字符串的结束
  • 如果第一个参数是负数,表示倒数计算的字符位置
  • 如果第二个参数是负数,将被自动转为0,因此返回空字符串
4.6 字符串方法_indexOf()

        indexOf方法用于确定一个字符串在另一个字符串中第一次出现的位置,返回结果是匹配开始的位置。如果返回 -1,表示不匹配

'hello world'.indexOf('o')        //4

        indexOf方法还可以接受第二个参数,表示从该位置开始向后匹配

'hello world'.indexOf('o', 6)        //7

4.7 字符串方法_trim()

        trim方法用于去除字符串两端的空格,返回一个新字符串,不改变原字符串

'       hello world   '.trim()                        // "hello world"

        该方法去除的不仅是空格,还包括制表符(\t、\v)、换行符(\n)和回车符(\r)

'\r\nhelloworld  \t'.trim()        // "helloworld"

         ES6扩展方法trimEnd()trimStart()方法:分别去掉尾部或头部的空格。

4.8 字符串方法_split()

        split方法按照给定规则分割字符串返回一个由分割出来的字符串组成的数组

'hello|world'.split('|')        // ['hello', 'world']

        如果分割规则为空字符串,则返回数组的成员是原字符串的每一个字符

'a|b|c'.split(' ')                 // ['a', '|', 'b', '|', 'c']

        如果省略参数,则返回数组的唯一成员是原字符串

'a|b|c'.split()                 // ['a|b|c']

        split方法可以接受第二个参数限定返回数组的最大成员数

'hello|wo|rld'.split('|', 3)                // ['hel', 'wo', 'rld']

5. 数组

5.1 数组简介

        数组(array)是按次序排列的一组值,整个数组用方括号表示,其中的值编号从0开始。数组可以在定义时赋值,也可以先定义后赋值。数组越界会返回undefined。

        任何类型的数据,都可以放入数组

var arr = [100, [1, 2, 3], false];

// 如果数组的元素还是数组,就形成了多维数组

var arr = [100, 200, ["iwen", "tom"]]

length属性:返回数组的成员数量

[100, 200, 300].length                // 3

5.2 数组的遍历for...in

        数组的遍历可以考虑使用 for循环 或 while循环,也可以使用 for...in 遍历数组

var a = ['hello', 'world', '!'];

for(var i in a){

        console.log(a[i]);

}

5.3 数组静态方法_Array.isArray()

        Array.isArray方法返回一个布尔值,表示参数是否为数组。可以弥补typeof运算符的不足

var arr = ['hello', 'world', '!'];

Array.isArray(arr)                        // true

5.4 数组方法_push()/pop()

        push方法用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。

var arr = [];

var myLength = arr.push('hello', true, 100);

console.log(myLength);                                        // 3

console.log(arr);                                                   // ['hello', true, 100]

        pop方法用于删除数组的最后一个元素,并返回该元素。注意,该方法会改变原数组

var arr = ['hello', 'world', '!'];

arr.pop();

console.log(arr);                        // ['hello', 'world']

5.5 数组方法_shift()/unshift()

        shift方法用于删除数组的第一个元素,并返回该元素,该方法会改变数组

var arr = ['hello', 'world', '!'];

arr.shift();

console.log(arr);                        // ['world', '!']

        shift方法可以遍历并清空一个数组

var list = [1, 2, 3, 4, 5, 6];

var item;

while(item = list.shift()){

        console.log(ltem);

} ;

console.log(list)                        // []

        unshift方法用于在数组的第一个位置添加元素,并返回添加后的数组长度,会改变原数组

var arr = ['world', '!'];

arr.unshift(100, 'hello');                // unshift方法可以接受多个参数

console.log(arr);                           //  [100, 'hello', 'world', '!']

5.6 数组方法_join()

        join方法以指定参数作为分隔符,将所有数组成员连接为一个字符串返回。如果不提供参数,默认用逗号分隔

var a = [1, 2, 3, 4];

a.join(' ');                        // '1 2 3 4'

a.join('|');                        // '1 | 2 | 3 | 4'

a.join();                          // '1, 2, 3, 4'        

        如果数组成员是 undefined 或 null 或 空位,会被转成空字符串

        数组的 join 配合字符串的 split 可以实现数组与字符串的互换

var arr = ['a', 'b', 'c'];

var myArr = arr.join(" ");               

console.log(myArr);                        // a b c

console.log(myArr.split(""));            //['a', 'b', 'c']    

5.7 数组方法_concat()

        concat方法用于多个数组的合并,它将新数组的成员,添加到原数组成员的后部,然后返回一个新数组,原数组不变。

['hello'].concat(['world'], ['!']);                        // ['hello', 'world', '!']

        除了数组作为参数,concat也接受其他类型的值作为参数,添加到目标数组尾部

应用场景上拉加载,合并数据

5.8 数组方法_reverse()

        reverse方法用于颠倒排列数组元素,返回改变后的数组。注意,该方法将改变原数组

var a = ['a', 'b', 'c'];

a.reverse();                // ['c', 'b', 'a']

        实现一个字符串反转排列

var str = 'hello';

str.split("").reverse().join("");                        // 'olleh'

5.9 数组方法_indexOf()

        indexOf方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1

var arr = ['a', 'b', 'c'];

arr.indexOf('b');                // 1

arr.indexOf('y');                // -1

        indexOf可以接受第二个参数,表示搜索的开始位置

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

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

相关文章

十二届蓝桥杯Python组3月中/高级试题 第三题

** 十二届蓝桥杯Python组3月中/高级试题 第三题 ** 第三题&#xff08;难度系数 3&#xff0c;25 个计分点&#xff09; 提示信息&#xff1a; 心理学用“智力商数”即“IQ”来表示一个人的智力水平。经过研究划分&#xff0c;智力水平可分为7 个等级&#xff1a; 1、IQ≥140…

Java类与对象(一)

类的定义与使用 在Java中使用关键字class定义一个类&#xff0c;格式如下&#xff1a; class 类名{// 成员变量/字段/属性//成员方法/行为 }Java中类和c语言中的结构体有点类似&#xff0c; 在Java中类名一般采用大驼峰&#xff08;每个首字母大写&#xff09;的形式&#xf…

类和对象一(从封装开始讲述)

目录&#xff1a; 一.封装 二.封装扩展之包&#xff0c;自定义包 三.访问限定符 四.static成员 一.封装&#xff1a;封装&#xff1a;将数据和操作数据的方法进行有机结合&#xff0c;隐藏对象的属性和实现细节&#xff0c;仅对外公开接口来和对象进行 交互。面向对象…

Python | 为列表中的元素分配唯一值

我们可以给列表中的所有数字分配一个唯一的值&#xff0c;重复时它会保留给它的值。这是一个非常常见的问题&#xff0c;在Web开发中&#xff0c;处理物品id时会遇到。让我们讨论一下解决这个问题的一些方法。 1. 使用enumerate() 列表解析 # initializing list test_list …

Reactor Netty TCP 服务器端-响应式编程-011

🤗 ApiHug {Postman|Swagger|Api...} = 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Next Generation API Development Platform…

Pytorch图像分类模型模型实时在线验证代码

1.训练并保存自己的模型 保存的模型格式为&#xff1a;XXX.pth torch.save(model, "./weight/last.pth")if best_acc <(validation_acc / len_val):torch.save(model, "./weight/best.pth")2.转化为ONNX格式 2.1环境安装&#xff08;window10&#x…

一款简约大气的个人单页介绍主页(附加源码)

一款简约大气的个人单页介绍主页&#xff08;附加源码&#xff09; 效果图部分源码领取源码下期更新预报 效果图 部分源码 .box_bg{width: 100%;height: 100%; }.wenzi{text-align: center;float: left;display: inline;width: 112px;line-height: 48px; } .wenzi2{text-align…

Hikyuu高性能量化研究框架助力探索

Hikyuu Quant Framework 是一款基于C/Python的开源量化交易分析与研究工具&#xff0c;主要用于A股市场的交易策略分析与回测&#xff0c;目前不支持期货等&#xff0c;需要自行改造。 Hikyuu的目标 Hikyuu的最初目的是为了快速对A股全市场股票进行策略回测和验证&#xff0c…

国内镜像地址 Docker、Conda、Node

国内主要系统、软件、开发框架镜像地址&#xff0c;包括 NPM、Centos、Ubuntu、Docker、PIP、Homebrew等。 Conda镜像 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.e…

【C++11】列表初始化、右值引用的详细讲解(上)

前言 在一开始学C之前我们就简单的了解了一下C的发展历史。 相比较而言&#xff0c;C11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全&#xff0c;不仅功能更强大&#xff0c;而且能提升程序员的开发效率加了许多特性&#xff0c;约140个新特性。使得C…

《A data independent approach to generate adversarial patches》论文分享(侵删)

原文链接&#xff1a;A data independent approach to generate adversarial patches | Machine Vision and Applications author{Xingyu Zhou and Zhisong Pan and Yexin Duan and Jin Zhang and Shuaihui Wang}, 一、介绍 在图像识别领域&#xff0c;与数字域中的攻击相比…

【C++杂货铺铺】AVL树

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 概念 &#x1f4c1; 节点的定义 &#x1f4c1; 插入 &#x1f4c1; 旋转 1 . 新节点插入较高左子树的左侧---左左&#xff1a;右单旋 2. 新节点插入较高右子树的右侧---右右&#xff1a;左单旋 3. 新节点插入较高左…

BM5 合并k个已排序的链表

描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a;节点总数 0≤&#x1d45b;≤50000≤n≤5000&#xff0c;每个节点的val满足 ∣&#x1d463;&#x1d44e;&#x1d459;∣<1000∣val∣<1000 要求&#xff1a;时间复杂度 &am…

工业级路由器的穿透力是不是更强(原创科普)

今天我想和大家聊聊工业级路由器的一个重要特性——穿透力。作为一名从事工业网络通信的工程师,我发现很多用户在选择工业级路由器时,都会问到一个问题:"工业级路由器的穿透力是不是更强?"下面就让我来为大家解答这个疑问。当然如果有通信产品需要也可以关注星创易联…

Kafka效率篇-提升效率三板斧

kafka在效率上做了很多的努力。最初的一个使用场景是处理网页上活跃的数据&#xff0c;它往往有非常大的体量&#xff0c;每个页面都能产生数十条写入。而且我们假设每条消息都会被至少一个消费者消费&#xff08;通常是多个&#xff09;&#xff0c;因此&#xff0c;我们努力让…

二维费用背包分组背包

二维费用背包&分组背包 一定要做的

基于Python的简单自动聊天机器人的设计与实现

基于Python的简单自动聊天机器人的设计与实现 Design and Implementation of a Simple Chatbot using Python 完整下载链接:基于Python的简单自动聊天机器人的设计与实现 文章目录 基于Python的简单自动聊天机器人的设计与实现摘要第一章 引言1.1 研究背景1.2 研究目的1.3 研…

WPF之页的使用

1,Page介绍。 Page直接从FrameworkElement中派生出来&#xff0c;WIndow从ContentControl中派生。 [Localizability(LocalizationCategory.Ignore)]public class Window : ContentControl, IWindowService{....} [ContentProperty("Content")]public class Page : Fr…

真要这么卷?某国产大模型定价下调90%,百万 tokens 只需 1 元!

就在刚刚&#xff0c;国内明星AI公司——智谱AI官宣重磅炸弹&#xff1a; 将能力对标GPT3.5-Turbo的GLM-3的大模型API调用价格最高下调90%&#xff0c;价格仅为原来的十分之一&#xff01; 废话不多说&#xff0c;直接上图&#xff1a; 官网地址&#xff1a;https://open.big…

java 数组和ArrayList类

Java中的数组和ArrayList类都是用于存储一组元素的数据结构,但它们之间有一些重要的区别。 Java中的数组和ArrayList类 类似于c++中的std::array和std::vector. 数组: 数组是一种固定大小的数据结构,一旦创建,其大小不能改变。数组可以存储基本数据类型(如int、double等…