Web前端开发之JavaScript_2

ops/2024/10/18 18:16:07/
  • 条件语句
  • 三元运算符
  • 循环语句
  • 字符串
  • 数组

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/ops/39908.html

相关文章

笨方法自学python(一)

我觉得python和c语言有很多相似之处&#xff0c;如果有c语言基础的话学习python也不是很难。这一系列主要是学习例题来学习python&#xff1b;我用的python版本是3.12 代码编辑器我用的是notepad&#xff0c;运行py程序用cmd 现在开始写第一个程序&#xff1a; print ("…

前端css中animation(动画)的使用

前端css中animation的使用 一、前言二、主要内容说明&#xff08;一&#xff09;、animation-name&#xff08;名称&#xff09;属性&#xff08;二&#xff09;、animation-duration&#xff08;持续时间&#xff09;属性1.前两个属性举例&#xff0c;源码12.源码1运行效果&am…

Springboot 单体thymeleaf极简门户网站

企业门户网站&#xff0c;基于Springboot和layui 1、原介绍 使用技术&#xff1a;后端框架&#xff1a;SpringBoot&#xff0c;Mybatisplus ### 数据库&#xff1a;MySQL,redis ## 前端框架&#xff1a;Layui ## 权限框架&#xff1a;shiro ## 网页模板引擎&#xff1a;thyme…

apache与nginx下安装zabbix

apache下安装zabbix #进入zabbix官网 https://www.zabbix.com/ #选择好要配置的服务#安装zabbix存储库 [rootzabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm [rootzabbix-server ~]# yum clean all #清理…

什么是XXE漏洞,日常如何做好web安全,避免漏洞威胁

随着网络技术的不断发展&#xff0c;网站安全问题日益受到人们的关注。当前随着技术发展&#xff0c;网站存在一些常见的可能被攻击者利用的漏洞&#xff0c;而在众多网站安全漏洞中&#xff0c;XXE&#xff08;XML External Entity&#xff09;漏洞是一个不容忽视的问题。今天…

1.下午试题1

1.15分 拿到10分之上 前三个问 12分 最后一个3分 前三个都是固定的题目 2.写出实体名称 写出数据存储问题 补充数据流起点与终点 3.数据流图 也称为数据流程图 Data Flow Diagram DFD 4.分为外部实体Entity 加工Process 数据存储Data Store 数据流 5.外部实体 当前系统之外的 人…

Java面试题:讨论Java中继承的使用场景和限制,以及如何通过组合来替代继承

在Java中&#xff0c;继承是一种强大的编程机制&#xff0c;它允许一个类&#xff08;称为子类或派生类&#xff09;继承另一个类&#xff08;称为父类或基类&#xff09;的属性和方法。继承可以带来代码复用和构建分层结构的好处&#xff0c;但也存在一些限制和潜在的问题。 …

【MySQL】MySQL事务中的 Redo 与 Undo 日志

MySQL事务中的 Redo 与 Undo 日志 好了&#xff0c;事务相关最后一个知识点&#xff0c;就是剩下的 Redo 和 Undo 日志相关的内容了。在学习它们之间&#xff0c;我们要先复习一下事务的四大特性&#xff0c;小伙伴们还记得是哪四大特性吗&#xff1f; ACID&#xff0c;原子性、…