首页 > 其他分享 >js内置函数

js内置函数

时间:2024-11-10 21:31:52浏览次数:5  
标签:arr 内置 console log js date const Math 函数

Javascript考点

内置对象

Math

Math.<方法名>(参数);

Math.abs(x) --- 绝对

功能:返回数字 x 的绝对值。
语法:Math.abs(x)

console.log(Math.abs(-5)); // 输出 5
console.log(Math.abs(10)); // 输出 10

Math.ceil(x) --- 天花板

功能:返回大于或等于 x 的最小整数(向上取整)。
语法:Math.ceil(x)

console.log(Math.ceil(4.2)); // 输出 5
console.log(Math.ceil(-4.2)); // 输出 -4

Math.floor(x) --- 地板

功能:返回小于或等于 x 的最大整数(向下取整)。
语法:Math.floor(x)

console.log(Math.floor(4.7)); // 输出 4
console.log(Math.floor(-4.7)); // 输出 -5

Math.round(x) --- 大概

功能:返回四舍五入后的整数。
语法:Math.round(x)

console.log(Math.round(4.5)); // 输出 5
console.log(Math.round(4.4)); // 输出 4

Math.max(x, y, ...) ---max

功能:返回一组数中的最大值。
语法:Math.max(a, b, c, ...)

console.log(Math.max(1, 2, 3, 4)); // 输出 4
console.log(Math.max(-1, -2, -3)); // 输出 -1

Math.min(x, y, ...) ---min

功能:返回一组数中的最小值。
语法:Math.min(a, b, c, ...)

console.log(Math.min(1, 2, 3, 4)); // 输出 1
console.log(Math.min(-1, -2, -3)); // 输出 -3

Math.random() ---random

功能:返回一个 0到1 之间的随机浮动数(包括 0,但不包括 1)。
语法:Math.random()

console.log(Math.random()); // 输出一个随机数,例如 0.7623

Math.pow(x, y) ---pow

功能:返回 x 的 y 次幂,即 x^y。
语法:Math.pow(x, y)

console.log(Math.pow(2, 3)); // 输出 8,因为 2^3 = 8
console.log(Math.pow(3, 2)); // 输出 9,因为 3^2 = 9

Math.sqrt(x)

功能:返回 x 的平方根。
语法:Math.sqrt(x)

console.log(Math.sqrt(9)); // 输出 3,因为 9 的平方根是 3
console.log(Math.sqrt(16)); // 输出 4,因为 16 的平方根是 4

Math.sin(x)、Math.cos(x)、Math.tan(x)

功能:分别返回 x 的正弦、余弦和正切值。参数 x 必须是弧度制。
语法:
Math.sin(x)
Math.cos(x)
Math.tan(x)

console.log(Math.sin(Math.PI / 2)); // 输出 1,π/2 的正弦值是 1    //PI是Π
console.log(Math.cos(Math.PI)); // 输出 -1,π 的余弦值是 -1
console.log(Math.tan(Math.PI / 4)); // 输出 1,π/4 的正切值是 1

Math.log(x)

功能:返回 x 的自然对数(以 e 为底)。
语法:Math.log(x)

console.log(Math.log(10)); // 输出 2.302585092994046,因为 ln(10) ≈ 2.302

Math.exp(x) ---e的X pow

功能:返回 e 的 x 次幂(自然对数的底 e,约为 2.718)。
语法:Math.exp(x)

console.log(Math.exp(1)); // 输出 2.718281828459045,因为 e^1 ≈ 2.718

常用的 Math 常量

(1)Math.PI
功能:表示圆周率 π(大约 3.14159)。
语法:Math.PI
console.log(Math.PI); // 输出 3.141592653589793

(2) Math.E
功能:表示自然对数的底数 e(大约 2.718)。
语法:Math.E
console.log(Math.E); // 输出 2.718281828459045

(3) Math.LN2
功能:表示 2 的自然对数(大约 0.693)。
语法:Math.LN2
console.log(Math.LN2); // 输出 0.6931471805599453

(4) Math.LN10
功能:表示 10 的自然对数(大约 2.302)。
语法:Math.LN10
console.log(Math.LN10); // 输出 2.302585092994046

(5) Math.SQRT2
功能:表示 2 的平方根(大约 1.414)。
语法:Math.SQRT2
console.log(Math.SQRT2); // 输出 1.4142135623730951

(6) Math.SQRT1_2
功能:表示 1/2 的平方根(大约 0.707)。
语法:Math.SQRT1_2
console.log(Math.SQRT1_2); // 输出 0.7071067811865476

(7) Math.LOG2E
功能:表示 e 的对数,以 2 为底(大约 1.442)。
语法:Math.LOG2E
console.log(Math.LOG2E); // 输出 1.4426950408889634

Date

在 JavaScript 中,Date 对象用于处理和操作日期和时间。它是一个非常强大的工具,能够帮助你获取当前时间、格式化日期、比较日期等。

创建 Date 对象

(1) 创建当前日期和时间
const now = new Date();
console.log(now); // 输出当前的日期和时间,Sun Nov 10 2024 20:54:08 GMT+0800 (中国标准时间)
这种方式不传参数,返回当前的日期和时间。

(2) 创建指定日期和时间
1.使用日期字符串:
const date1 = new Date("2024-11-10");
console.log(date1); // 输出 2024-11-10T00:00:00.000Z

2.使用年月日(不带时间):--->数组下标规则
const date2 = new Date(2024, 10, 10); // 注意:月份从 0 开始,10 表示 11 月
console.log(date2); // 输出 2024-11-10T00:00:00.000Z

3.使用年月日时分秒:
const date3 = new Date(2024, 10, 10, 12, 30, 0);
console.log(date3); // 输出 2024-11-10T12:30:00.000Z

4.使用时间戳:
!!!有点懵
const date4 = new Date(1699680000000); // 时间戳单位为毫秒
console.log(date4); // 输出对应的日期,例如 2024-11-10T00:00:00.000Z

获取和设置日期和时间的各个部分

获取年、月、日、小时、分钟、秒等

getFullYear():获取四位年份(例如 2024)。
getMonth():获取月份(0-11,0 代表 1 月,11 代表 12 月)。
getDate():获取日期(1-31 !!!!)。
getDay():获取星期几(0-6,0 代表星期日,6 代表星期六)。
getHours():获取小时(0-23)。
getMinutes():获取分钟(0-59)。
getSeconds():获取秒(0-59)。
getMilliseconds():获取毫秒(0-999)。

const date = new Date("2024-11-10T12:30:00");
console.log(date.getFullYear());   // 输出 2024
console.log(date.getMonth());      // 输出 10 (表示 11 月)
console.log(date.getDate());       // 输出 10
console.log(date.getDay());        // 输出 0 (星期日)
console.log(date.getHours());      // 输出 12
console.log(date.getMinutes());    // 输出 30
console.log(date.getSeconds());    // 输出 0
console.log(date.getMilliseconds());// 输出 0
设置年、月、日、小时、分钟、秒等

setFullYear(year):设置年份。
setMonth(month):设置月份(0-11)。
setDate(date):设置日期(1-31)。
setHours(hour):设置小时(0-23)。
setMinutes(minute):设置分钟(0-59)。
setSeconds(second):设置秒(0-59)。
setMilliseconds(milliseconds):设置毫秒(0-999)。

const date = new Date();
date.setFullYear(2025);
date.setMonth(0);  // 设置为 1 月
date.setDate(15);   // 设置日期为 15
console.log(date);  // 输出类似 2025-01-15T... 的日期
日期的比较[时间戳比较]

你可以通过比较两个 Date 对象来判断它们的先后关系
比较时间戳:使用 getTime() 方法获取时间戳,然后直接进行比较。

const date1 = new Date("2024-11-10");
const date2 = new Date("2025-11-10");
if (date1.getTime() < date2.getTime()) {
  console.log("date1 is earlier than date2");
} else {
  console.log("date1 is later than or the same as date2");
}

日期格式化 --掌握一两个就好

JavaScript 中的 Date对象本身没有内建的格式化方法(即没有像 toString("yyyy-MM-dd") 这样的功能),但你可以使用一些方法将日期转为字符串

toDateString()

将日期转换为易读的格式(去掉时间部分)。

const date = new Date("2024-11-10T12:30:00");
console.log(date.toDateString()); // Sun Nov 10 2024
toTimeString() --->好棒!!

将时间转换为易读的时间格式。

const date = new Date("2024-11-10T12:30:00");
console.log(date.toTimeString()); // 12:30:00 GMT+0800 (中国标准时间)
toISOString()

返回 ISO 格式的字符串,通常用于API 传输。

const date = new Date("2024-11-10T12:30:00");
console.log(date.toISOString()); // 2024-11-10T04:30:00.000Z
toLocaleString() --好棒!!

返回本地化的日期和时间字符串,格式根据浏览器的语言环境而有所不同。

const date = new Date("2024-11-10T12:30:00");
console.log(date.toLocaleString()); // 2024/11/10 12:30:00

日期的加减

JavaScript Date 对象没有直接支持加减日期的方法,但你可以通过设置日期的各个部分来手动实现。

增加天数
const date = new Date("2024-11-10");
date.setDate(date.getDate() + 5); // 增加 5 天
console.log(date);  // Fri Nov 15 2024 08:00:00 GMT+0800 (中国标准时间)
console.log(date.toLocaleString());  //2024/11/15 08:00:00

减少天数
const date = new Date("2024-11-10");
date.setDate(date.getDate() - 5); // 减少 5 天
console.log(date);  // 输出 2024-11-05
增加月份

const date = new Date("2024-11-10");
date.setMonth(date.getMonth() + 2); // 增加 2 个月
console.log(date);  // 输出 2025-01-10
增加年份
const date = new Date("2024-11-10");
date.setFullYear(date.getFullYear() + 1); // 增加 1 年
console.log(date);  // 输出 2025-11-10

日期和时间戳

  1. 你可以通过 getTime() 方法获取一个 Date 对象的时间戳
const date = new Date();
console.log(date.getTime());  // 输出当前时间的时间戳,例如 1678502399973
  1. 你还可以通过 Date.now() 获取当前的时间戳:
console.log(Date.now());  // 输出当前时间的时间戳

总结
Date 对象是 JavaScript 中非常重要的一个工具,能够帮助你处理日期和时间。
通过它,你可以:
获取和设置日期、时间的各个部分(如年、月、日、时、分、秒等)。
比较不同日期之间的大小。
格式化日期为字符串。
计算日期的加减。
获取和转换为时间戳。

Array

        //1.find()
        const arry1 = [5,12,8,130,44];
        const found = arry1.find(a => a > 10);
        // 这一行使用了find方法,它是JavaScript数组对象的一个方法,用于找出第一个满足提供的测试函数的元素。
        // find()的箭头函数:变量名 => 条件【满足条件返回它所找到的第一个值,不满足返回undefined】
        console.log(found);//[12]

        //2.filter()
        const arry1 = [5, 12, 8, 130, 44];
        const filtered = arry1.filter(element => element > 10); // 返回所有大于10的元素组成的新数组
        console.log(typeof filtered); // object--->数组是特殊的对象
        console.log(filtered); // [12,130,44]
        console.log(Array.isArray(filtered)); //  true
        // 返回一个新数组,包含所有满足条件的元素,没有就返回空数组。

        // 3.include() 
        const array = [1, 2, 3, 4, 5];
        if (array.includes(3&&4)) { // 检查数组是否包含元素3
        console.log('数组包含元素 3和4');
        } else {
        console.log('数组不包含元素 3或4');
        }
        // 检查数组里有没有相应的值

        //4.Array.isArray()
        console.log(Array.isArray(变量)); // true
        //检查是不是Array类型

        //5.push()
        const arr = [1, 2, 3]
        arr.push(8)
        console.log(arr) // [1, 2, 3, 8]
        //在数组后面添加数字

        //6.pop()
        const arr = [1, 2, 3]
        const popVal = arr.pop()//移除arr里最后一个元素,并返回它给popVal
        console.log(popVal) // 3 -->被移走的元素
        console.log(arr) // [1, 2]

        //栈 -->

        // ① 数组模拟常见数据结构之一:栈
        const stack = [0, 1]
        stack.push(2) // 压栈
        console.log(stack) // [0, 1, 2]
        
        const popValue = stack.pop() // 出栈
        console.log(popValue) // 2
        console.log(stack) // [0, 1]

        //7.unshift()
        const arr = [1, 2, 3]
        arr.unshift(0)
        console.log(arr) // [0, 1, 2, 3]

        //8.shift()
        const arr = [1, 2, 3]
        const shiftVal = arr.shift()--移除arr里第一一个元素,并返回它给shiftVal
        console.log(shiftVal) // 1  -->被移走的元素 
        console.log(arr) // [2, 3] 

        // ②数组模拟常见数据结构之一:队列
        const queue = [0, 1]
        queue.push(2) // 入队
        console.log(queue) // [0, 1, 2]     
        const shiftValue = queue.shift() // 出队
        console.log(shiftValue) // 0
        console.log(queue) // [1, 2]

        //9.concat()
        const arr = [1, 2, 3]
        const arr2 = arr.concat([7, 8, 9])
        console.log(arr) // [1, 2, 3]
        console.log(arr2) // [1, 2, 3, 7, 8, 9]
        //把concat括号里的内容放到原数组的后面

        //10.ndexof()
        const arr = [1, 2, 3]
        console.log(arr.indexOf(2)) // 1
        console.log(arr.indexOf(-1)) // -1
        // 在数组中寻找该值,找到则返回其下标,找不到则返回-1。

        //11.join()
        const arr = [1, 2, 3]
        console.log(arr.join()) // ‘1, 2, 3’//将数组转化成字符串,并返回该字符串,不传值则默认逗号隔开,
        console.log(arr) // [1, 2, 3]//原数组不变。
        // 将数组转化成字符串,并返回该字符串,不传值则默认逗号隔开,原数组不变。
        let fruits = ["Apple", "Banana", "Cherry"];
        let result = fruits.join(", "); // 使用逗号和空格作为分隔符

        //12.reverse()
        console.log(result); // 输出: Apple, Banana, Cherry
        const arr = [1, 2, 3]
        console.log(arr.reverse()) // [3, 2, 1]
        console.log(arr) // [3, 2, 1]
        // 翻转原数组,并返回已完成翻转的数组,原数组改变。

        13. slice(start,end)
        const arr = [1, 2, 3, 4, 5]
        console.log(arr.slice(1, 4)) // [2, 3, 4]
        //角标为1 --- 角标为3
        console.log(arr) // [1, 2, 3, 4, 5]
        // 从start 开始截取到end,但是不包括end

        //14.splice(index1,index2,new1,new2,new3.....)
        const arr3 = [1, 2, 3, 4, 5, 6, 7, "f1", "f2"];
        const arr4 = arr3.splice(2, 3) 
        console.log(arr4); // [3, 4, 5];
        console.log(arr3); // [1, 2, 6, 7, "f1", "f2"];    
        const arr5 = arr3.splice(2, 0, "wu", "leon"); //插入的元素在选定下标位置前面
        console.log(arr5); // [] 返回空数组
        console.log(arr3); // [1, 2, "wu", "leon", 6, 7, "f1", "f2"];    
        const arr6 = arr3.splice(2, 3, "xiao", "long");
        console.log(arr6); // ["wu", "leon", 6]
        console.log(arr3); //[ 1, 2, "xiao", "long", 7, "f1", "f2"]        
        const arr7 = arr3.splice(2); 
        console.log(arr7);// ["xiao", "long", 7, "f1", "f2"]
        console.log(arr3); // [1, 2]
        原数组删除从下标index1开始num个元素【包括端点】,如果需要被删元素,将它存到新的变量里就好
        p.s.如果num不写,默认删光下标开始所有元素

        //15.sort((a, b) => a - b)--从小到大
        //15.sort((a, b) => b - a)--从大到小
        const arr = [1, 4, 3]
        arr.sort((a, b) => b - a)
        console.log(arr) // [4, 3, 1]
        const arrplus = [1, 4, 3]
        arrplus.sort((a, b) => a - b)
        console.log(arrplus) // [1, 3, 4]

        //16.tostring()
        const arr = [1, 2, 3, 4, 5]
        console.log(arr.toString()) // ‘1, 2, 3, 4, 5’
        console.log(arr) // [1, 2, 3, 4, 5]
        将数组变成字符串 将数组转化成字符串,并返回该字符串,**逗号**隔开,原数组不变。

String

        //1.charAt
        var father = 'abcdefg'
        let son = father.charAt(2)
        console.log(son) // 输出 'c' 
        console.log(father[3]) // 输出 'd'
        // 返回指定索引位置处的字符。类似于数组用中括号获取相应下标位置的数据。

        //2.concat()
        const str1 = 'abcdefg'
        const str2 = '1234567'
        const str3 = str1.concat(str2)
        console.log(str3) // 输出 'abcdefg1234567'
        // 类似数组的concat(),用来返回一个合并拼接两个或两个以上字符串。原字符串不变。

        //3.indexOf()  lastIndexOf()
        const str = 'abcdcefcg'
        console.log(str.indexOf('c')) //  '2'
        console.log(str.lastIndexOf('c')) //  '7'
        // indexOf,返回一个字符在字符串中首次出现的位置,
        // lastIndexOf返回一个字符在字符串中最后一次出现的位置。

        //4.slice(index,endIndex)  --->endl:截至位置下标
        const str = 'abcdefg'
        console.log(str.slice()) // 'abcdefg'
        console.log(str.slice(1)) // 'bcdefg'
        console.log(str.slice(2, str.length-1)) // 'cdef'

        //5.split()
        const str = 'A*B*C*D*E*F*G'
        console.log(str.split('*')) // ["A", "B", "C", "D", "E", "F", "G"]     
        const str1 = 'ABC*DEF*G'
        console.log(str1.split('*')) //  ['ABC', 'DEF', 'G']
        // 使用指定的分隔符将一个字符串拆分为多个子字符串数组并返回,原字符串不变。

        //6.substr(index)-->从index开始,后面都砍掉
        //6.substr(index, length)-->从index开始,长度为length删掉
        const str = 'ABCDEFGHIJKLMN'
        console.log(str.substr(2))  // 'CDEFGHIJKLMN'
        console.log(str.substr(2, 9))  //'CDEFGHIJK'
        // substr的参数二如果为0或者负数,则返回一个空字符串,如果未填入,则会截取到字符串的结尾去。substring的参数一和参数二为NAN或者负数,那么它将被替换为0。

        //7.substring(index,newIndex)-->从index开始,newIndex截至【不包括newIndex】
        //7.substring(index)-->从index开始,后面都砍掉
        const str = 'ABCDEFGHIJKLMN'
        console.log(str.substring(2)) //'CDEFGHIJKLMN' 
        console.log(str.substring(2, 9))  //'CDEFGHI'
         
        //8.match()
        const str = '2018年结束了,2019年开始了'
        const reg = /\d+/g  // 这里是定义匹配规则,匹配字符串里的1到多个数字
        // /\d+/g 是一个全局正则表达式,\d 匹配任何数字(等价于 [0-9]),+ 表示匹配一次或多次。g 标志代表全局匹配    
        console.log(str.match(reg))  // 输出符合匹配规则的内容,以数组形式返回 ['2018', '2019']
        console.log(str.match('年'))  // 不使用正则 ["20", index: 4, input: "2018年结束了,2019年开始了"]
        console.log(str.match('20'))  // 不使用正则 ["20", index: 0, input: "2018年结束了,2019年开始了"]
        // 当你传递一个字符串(而不是正则表达式)给 match() 方法时,它会返回第一个与该字符串匹配的子串的信息。返回值是一个数组,其中第一个元素是匹配的子串,index 属性是匹配子串在原字符串中的位置,input 属性是原字符串本身。

        //9.search(number)
        const str = '2018年结束了,2019年开始了,2020年就也不远了'
        const reg = /\d+/i  // 这里是定义匹配规则,匹配字符串里的1到多个数字
        console.log(str.search(reg)) // 输出 0  这里搜索到的第一项是从位置0开始的

        //10.toLowerCase(变量名) -->全转小写
        //10.toUpperCase(变量名) -->全转大写
        const str1 = 'A!cd1fg'
        const str2 = 'aBCDEFG'
        console.log(str2.toLowerCase())  // 'abcdefg'
        console.log(str1.toUpperCase())  // 'A!CD1FG'
        // 数字,特殊符号不变

        // 11.includes('X')
        // 11.startsWith('X')
        // 11.endsWith('X')
        const str = 'Excuse me, how do I get to park road?'
        console.log(str.includes('how')) // true
        console.log(str.startsWith('Excuse')) //  true
        console.log(str.endsWith('?')) // true
        //包含X?  以X为开头?  以X为结尾?

        //12.repear(times)
        const str = 'http'
        const str2 = str.repeat(3)
        console.log(str) // 输出:'http'
        console.log(str2) // 输出:'httphttphttp'
        //重复次数


        //13.replace()
        const str = '2018年结束了,2019年开始了,2020年就也不远了'
        const rex = /\d+/g  
        const str1 = str.replace(rex, '****') 
        console.log(str1) // "****年结束了,****年开始了,****年也不远了"
        const str2 = str.replace(rex, function(item){
            console.log(arguments)
            const arr = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
            let newStr = ''
            item.split('').map(function(i){
                    newStr += arr[i]
            })					
            return newStr       
        })
        console.log(str2) //贰零壹捌年结束了,贰零壹玖年开始了,贰零贰零年也不远了

标签:arr,内置,console,log,js,date,const,Math,函数
From: https://www.cnblogs.com/GJ504b/p/18538542

相关文章

  • 告别复杂判断!Python 中实现函数重载的终极技巧
    引言说到函数重载,学过Java的同学应该不陌生,最常用的地方应该就是打印log了,对于不同的参数,调用的是不同的重载函数。那么Python如何实现函数重载呢?重载概念函数重载是指在同一作用域内,允许多个同名函数存在,但它们的参数列表不同。虽然许多编程语言(如Java和C++)支持函数......
  • JavaScript(JS)函数的使用(二)
    12、函数函数名相同时后面的函数覆盖前面的函数;在JS中实参的个数和形参的个数可以不一致;如果形参过多,会自动填上undefined;如果实参过多,多余的实参会被忽略;函数遇到return就不向下执行,函数的结束用return。1.1函数的声明与调用<script>functionwriteText()......
  • 【优化求解】蚁群算法ACO求解经济损失的航班延误恢复优化问题(目标函数:航班延误成本最
    ......
  • Nuxt.js 应用中的 schema:extend事件钩子详解
    title:Nuxt.js应用中的schema:extend事件钩子详解date:2024/11/10updated:2024/11/10author:cmdragonexcerpt:schema:extend钩子使开发者能够扩展默认数据模式,为特定业务需求添加自定义字段和验证。categories:前端开发tags:Nuxt钩子数据扩展自定......
  • Nuxt.js 应用中的 listen 事件钩子详解
    title:Nuxt.js应用中的listen事件钩子详解date:2024/11/9updated:2024/11/9author:cmdragonexcerpt:它为开发者提供了一个自由的空间可以在开发服务器启动时插入自定义逻辑。通过合理利用这个钩子,开发者能够提升代码的可维护性和调试能力。注意处理性能、错......
  • Nuxt.js 应用中的 prepare:types 事件钩子详解
    title:Nuxt.js应用中的prepare:types事件钩子详解date:2024/11/8updated:2024/11/8author:cmdragonexcerpt:prepare:types钩子为Nuxt.js开发者提供了灵活定制TypeScript配置和声明的能力。通过使用此钩子,开发者能够确保TypeScript配置和类型声明能够满......
  • Nuxt.js 应用中的 schema:extend事件钩子详解
    title:Nuxt.js应用中的schema:extend事件钩子详解date:2024/11/10updated:2024/11/10author:cmdragonexcerpt:schema:extend钩子使开发者能够扩展默认数据模式,为特定业务需求添加自定义字段和验证。categories:前端开发tags:Nuxt钩子数据扩展自定义验证......
  • 三十六、Python基础语法(JSON操作)
    JSON(JavaScriptObjectNotation)是一种基于文本,轻量级的数据交换格式。它易于人阅读和编写,同时也易于机器解析和生成,在自动化测试中经常用来存放测试数据。JSON的特点:基于文本,不包含图片、音视频轻量级,定义相同数据量,JSON占用文件比较小独立于语言,所有编程语言都可以使......
  • js第二天
    1、运算符1.1赋值运算符赋值运算符就是对变量赋值的运算符有=的就是赋值运算符+=、-=、*=、\=1.2一元运算符众多的Javascript的运算符可以根据所需表达式的个数分为一元运算符、二元运算符、三元运算符二元运算符:letnum=10+20一元运算符:例:正负号......
  • js第三天
    1、for循环1.1遍历数组letarr=['刘德华','刘强东','马云','马化腾']   for(leti=0;i<4;i++){     document.write(arr[i]+'')   }​1.2循环嵌套for(leti=1;i<=3;i++){    ......