Web前端开发之JavaScript_2

devtools/2024/10/24 12:22:49/
  • 条件语句
  • 三元运算符
  • 循环语句
  • 字符串
  • 数组

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 (初始化表达式; 条件; 迭代因子) {        // 表达式可省略

        语句;

}

示例:打印九九乘法表 

javascript"><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.ppmy.cn/devtools/39325.html

相关文章

【web网页制作】html+css旅游家乡河南开封主题网页制作(4页面)【附源码】

HTMLCSS家乡河南主题网页目录 &#x1f354;涉及知识&#x1f964;写在前面&#x1f367;一、网页主题&#x1f333;二、页面效果Page1 首页Page2 开封游玩Page 3 开封美食Page4 留言 &#x1f308; 三、网页架构与技术3.1 脑海构思3.2 整体布局3.3 技术说明书 &#x1f40b;四…

Gateway基础配置指南

Gateway基础配置指南 一、引言 随着微服务架构的普及&#xff0c;API网关&#xff08;Gateway&#xff09;作为微服务架构中的关键组件&#xff0c;其重要性日益凸显。Gateway作为系统的唯一入口&#xff0c;负责处理所有客户端的请求&#xff0c;并根据业务规则将请求转发到…

苍穹外卖总结

1 软件开发流程 需求分析->设计->编码->单元测试->集成测试->上线运维 1.1 需求分析 交付结果&#xff1a;完成需求规格说明书、产品原型 需求规格说明书&#xff1a;系统定义、应用环境、功能规格、性能需求 产品原型&#xff1a;一般通过网页的形式展示当…

C++并发:线程函数传参(一)

一、问题 当创建 std::thread 对象时&#xff0c;传递给线程的函数的所有参数都会被复制或移动到新创建的线程的内存空间中。这是为了确保线程的执行不会依赖于父线程可能销毁的栈上变量&#xff0c;从这个机制上看&#xff0c;这是很合理的。 在新的线程的栈上&#xff0c;这…

深入浅出微前端架构

微前端&#xff08;Micro-frontends&#xff09;是一种设计思想&#xff0c;旨在将大型前端应用分解成小的、独立的、可复用的部分&#xff0c;每个部分都有自己独立的责任域。这种架构模式借鉴了微服务的理念&#xff0c;将其应用于前端开发&#xff0c;使得不同的团队可以独立…

elasticsearch安装配置注意事项

安装Elasticsearch时&#xff0c;需要注意以下几个重要事项&#xff1a; 1、版本选择&#xff1a;选择与你系统和其他组件&#xff08;如Logstash、Kibana&#xff09;兼容的Elasticsearch版本。 2、Java环境&#xff1a;Elasticsearch是基于Java构建的&#xff0c;因此确保已…

java JMH 学习

JMH 是什么&#xff1f; JMH&#xff08;Java Microbenchmark Harness&#xff09;是一款专用于代码微基准测试的工具集&#xff0c;其主要聚焦于方法层面的基准测试&#xff0c;精度可达纳秒级别。此工具由 Oracle 内部负责实现 JIT 的杰出人士编写&#xff0c;他们对 JIT 及…

11.1.k8s中pod的调度-nodeSelector节点选择器

目录 一、概念 二、节点选择器nodeSelector的使用 一、概念 NodeSelector是Kubernetes调度器的一部分&#xff0c;它允许开发者根据节点的标签&#xff0c;精确地控制Pod在集群中的调度位置。通过在Pod的定义中设置NodeSelector&#xff0c;可以确保Pod只会被调度到具有特定标…