第二天
github上的30DaysOfJavaScript,学习并汉化
别问为什么没有第一天,因为第一天的东西太少且简单了
附地址:
30DaysOfJavaScript
第二天的内容主要是对数据类型的操作
html文件省略(无内容,主要在控制台看)
// 字符串操作方法===========================================================================================================
console.log("=====================index");
let str = "你干嘛,哎哟~~"
console.log('第一个字符:', str[0]); //你
console.log('字符串长度:', str.length); // 9
let lastIndex = str.length - 1;
console.log('最后一个字符:', str[lastIndex]); //~
// charAt()方法返回指定索引位置的char值。索引范围为0~length()-1
console.log("=====================charAt");
console.log('charAt()第一个:', str.charAt(0)); //你
console.log('charAt()最后一个:', str.charAt(lastIndex)); //~
// charCodeAt()方法返回指定索引位置的char值的Unicode编码。索引范围为0~length()-1
console.log("=====================charCodeAt");
console.log('charCodeAt()第一个:', str.charCodeAt(0)); //20320
console.log('charCodeAt()最后一个:', str.charCodeAt(lastIndex)); // 126
// concat():它接受许多子字符串并创建连接。
console.log("=====================concat");
let str1 = '坤坤'
let str2 = '鸡哥'
console.log(str1.concat(str2, " 树枝", " 荔枝")); // 坤坤鸡哥 树枝 荔枝
// endsWith()方法用于检测字符串是否以指定的子字符串结束。如果是,返回true,否则返回false。
//语法 string.endsWith(searchvalue, length)
// searchvalue 必需,要搜索的子字符串。
// length 设置字符串的长度。默认值为原始字符串长度 string.length。
console.log("=====================endsWith");
let endStr = "可乐要加冰,爱坤要用心"
console.log(endStr.endsWith('心')); // true
console.log(endStr.endsWith('用心')); // true
console.log(endStr.endsWith('心', 11)); // false
console.log(endStr.endsWith('心', 10)); // true
//includes():接受一个子字符串参数,并检查该子字符串参数是否存在于字符串中。(区分大小写)
//includes()返回一个布尔值。它检查子字符串是否存在于字符串中,如果存在则返回true,如果不存在则返回false。
console.log("=====================includes");
let string = '多一眼看一眼 就会爆炸'
console.log(string.includes('爆炸a')) // false
console.log(string.includes(' ')) // true
//indexOf()方法返回指定子字符串在字符串中首次出现的位置。如果没有找到该子字符串,则返回-1。
//语法:string.indexOf(substring, start)
// substring 必需,要搜索的子字符串。
// start 可选,从该索引位置开始搜索子字符串,默认值为0。
console.log("=====================indexOf");
let str3 = 'Feliksisikun'
console.log(str3.indexOf('s')) // 5
console.log(str3.indexOf('s', 6)) // 7
// lastIndexOf():它接受一个子字符串参数,如果子字符串参数存在于字符串中,则返回子字符串的最后一个位置,如果不存在,则返回-1
//语法:string.lastIndexOf(substring, start)
// substring 必需,要搜索的子字符串。
// start 可选,从该索引位置开始搜索子字符串,默认值为string.length。
console.log("=====================lastIndexOf");
let str4 = 'Feliksisikun'
console.log(str4.lastIndexOf('i')) // 8
console.log(str4.lastIndexOf('i', 5)) // 3
console.log(str4.lastIndexOf('abc')) // -1;
//length:字符串长度方法返回字符串中包含空格的字符数。
console.log("=====================length");
let str5 = 'Feliksisikun'
console.log(str5.length) // 12
//match:它将子字符串或正则表达式模式作为参数,并在有匹配时返回数组,如果没有,则返回null。
// 让我们看看正则表达式模式是什么样子的。它以/符号开头,以/符号结尾。
console.log("=====================match");
let str6 = 'ikun'
let substring = 'kun'
let patternOne = /kun/ //无标志的正则表达式模式
let patternTwo = /kun/gi // g-表示在整个文本中搜索,i-不区分大小写
console.log(str6.match(substring)); // ['kun',index:1,input:'ikun']
let str7 = 'this is ikun,you remember!,ikun together'
console.log(str7.match('ikun')) // ['ikun',index:8,input:'this is ikun,you remember!']
let pattern = /ikun/gi
console.log(str7.match(pattern))
let txt = 'In 2019, I know kun. Now, in 2022 I super exited to be a ikun'
let regEx = /\d/g //d带转义字符意味着d不是正常的d,而是作为数字的d +表示一个或多个数字 如果有g,那就意味着全局,搜索所有地方。
console.log(txt.match(regEx)) // ["2", "0", "1", "9", "2", "0", "2", "2"]
console.log(txt.match(/\d+/g)) // ["2019", "2022"]
// repeat():它需要一个数字参数,它返回字符串的重复版本。
console.log("=====================repeat");
let str8 = 'ikun'
console.log(str8.repeat(3)) // ikunikunikun
//replace():它需要两个参数,旧子字符串和新子字符串。string.replace(old, new)
console.log("=====================replace");
let str9 = 'ikun'
console.log(str9.replace('ikun', 'kunkun'));// kunkun
//search:它将子字符串作为参数,并返回第一个匹配项的索引。
console.log("=====================search");
let str10 = "I'm ikun you remember"
console.log(str10.search('m')) // 2
// split():split方法在指定位置拆分字符串。
console.log("=====================split");
let str11 = "I'm ikun you remember"
console.log(str11.split(' ')) // ["I'm", "ikun", "you", "remember"]
let str12 = "felikszemdegs"
console.log(str12.split('')) // ["f", "e", "l", "i", "k", "s", "z", "e", "m", "d", "e", "g", "s"]
// startsWith:它需要一个子字符串作为参数,它检查字符串是否以指定的子字符串开头。它返回一个布尔值(true或false)。string.startsWith(substring, start)
console.log("=====================startsWith");
let str13 = "I'm ikun you remember"
console.log(str13.startsWith('I')) // true
console.log(str13.startsWith('I', 2)) // false
// substr():它需要两个参数,第一个参数是子字符串的起始位置,第二个参数是子字符串的长度。string.substr(start, length)
// 如果省略第二个参数,则返回从起始位置到字符串末尾的所有字符。
// subtr已被弃用,但是仍然可以使用。
console.log("=====================substr");
let str14 = "I'm ikun you remember"
console.log(str14.substr(2, 3)) // 'm i'
console.log(str14.substr(4)) //ikun you remember
// substring():它需要两个参数,第一个参数是子字符串的起始位置,第二个参数是子字符串的结束位置。string.substring(start, end)
// 如果省略第二个参数,则返回从起始位置到字符串末尾的所有字符。
// substring()与substr()类似,但是不能接受负值参数。
// 注意第二个参数 一个是结束位置,一个是长度
console.log("=====================substring");
let str15 = "I'm ikun you remember"
console.log(str15.substring(2, 3)) // 'm'
console.log(str15.substring(4)) //ikun you remember
// toLowerCase():它将字符串转换为小写。
console.log("=====================toLowerCase");
let str16 = "I'M IKUN YOU REMEMBER"
console.log(str16.toLowerCase()) // i'm ikun you remember
// toUpperCase():它将字符串转换为大写。
console.log("=====================toUpperCase");
let str17 = "I'm ikun you remember"
console.log(str17.toUpperCase()) // I'M IKUN YOU REMEMBER
// trim():删除字符串开头或结尾的空格。
console.log("=====================trim");
let str18 = " I'm ikun you remember "
console.log(str18.trim()) // I'm ikun you remember
// 数学方法===========================================================================================================
// Math.abs():它返回一个数字的绝对值。
console.log("=====================Math.abs");
console.log(Math.abs(-5)) // 5
// Math.ceil():它返回大于或等于一个给定数字的最小整数。
console.log("=====================Math.ceil");
console.log(Math.ceil(4.5)) // 5
// Math.floor():它返回小于或等于一个给定数字的最大整数。
console.log("=====================Math.floor");
console.log(Math.floor(4.5)) // 4
// Math.max():它返回一组数字中的最大值。
console.log("=====================Math.max");
console.log(Math.max(1, 2, 3, 4, 5)) // 5
// Math.min():它返回一组数字中的最小值。
console.log("=====================Math.min");
console.log(Math.min(1, 2, 3, 4, 5)) // 1
// Math.pow():它返回基数(base)的指数(exponent)次幂,即baseexponent。
console.log("=====================Math.pow");
console.log(Math.pow(2, 3)) // 8
// Math.round():它返回一个数字四舍五入后最接近的整数。
console.log("=====================Math.round");
console.log(Math.round(4.5)) // 5
// Math.sqrt():它返回一个数字的平方根。
console.log("=====================Math.sqrt");
console.log(Math.sqrt(9)) // 3
// Math.random():它返回一个0到1之间的随机数。
console.log("=====================Math.random");
console.log(Math.floor(Math.random() * 10)) // 返回0-10之间的随机整数
// Math.trunc():它返回一个数字的整数部分。
console.log("=====================Math.trunc");
console.log(Math.trunc(4.5)) // 4
// Math.sign():它返回一个数字的符号,表示该数字是正数、负数还是零。
console.log("=====================Math.sign");
console.log(Math.sign(4.5)) // 1
console.log(Math.sign(-4.5)) // -1
console.log(Math.sign(0)) // 0
// Math.E:它表示自然对数的底数,约等于2.718。
console.log("=====================Math.E");
console.log(Math.E) // 2.718281828459045
// Math.PI:它表示圆周率,约等于3.14159。
console.log("=====================Math.PI");
console.log(Math.PI) // 3.141592653589793
// Math.LN2:它表示2的自然对数,约等于0.693。
console.log("=====================Math.LN2");
console.log(Math.LN2) // 0.6931471805599453
// Math.LN10:它表示10的自然对数,约等于2.303。
console.log("=====================Math.LN10");
console.log(Math.LN10) // 2.302585092994046
// Math.LOG2E:它表示以2为底e的对数,约等于1.443。
console.log("=====================Math.LOG2E");
console.log(Math.LOG2E) // 1.4426950408889634
// Math.LOG10E:它表示以10为底e的对数,约等于0.434。
console.log("=====================Math.LOG10E");
console.log(Math.LOG10E) // 0.4342944819032518
// Math.SQRT1_2:它表示返回2的平方根的倒数,约等于0.707。
console.log("=====================Math.SQRT1_2");
console.log(Math.SQRT1_2) // 0.7071067811865476
// Math.SQRT2:它表示2的平方根,约等于1.414。
console.log("=====================Math.SQRT2");
console.log(Math.SQRT2) // 1.4142135623730951
// 非基元数据类型===========================================================================================================
console.log("=====================非基元数据类型");
let nums = [1, 2, 3]
let numbers = [1, 2, 3]
console.log(nums == numbers) // false 两个数组是不同的对象,即使它们包含相同的元素,它们也不相等。
let num = nums
console.log(nums == num) // true 两个数组是相同的对象,相等。
// 对象同样
let obj1 = { name: 'obj1' }
let obj2 = { name: 'obj2' }
console.log(obj1 == obj2) // false 两个对象是不同的对象,即使它们包含相同的属性,它们也不相等。
let obj3 = obj1
console.log(obj1 == obj3) // true 两个对象是相同的对象,相等。
// 基元数据类型===========================================================================================================
console.log("=====================基元数据类型");
let a = 1
let b = 1
console.log(a == b) // true 两个基元数据类型是相同的对象,相等。
let c = 1
let d = 2
console.log(c == d) // false 两个基元数据类型是不同的对象,不相等。
let e = true
let f = false
console.log(e == f) // false 两个基元数据类型是不同的对象,不相等。
// 嵌入表达式
console.log("=====================嵌入表达式");
let x = 1
let y = 2
console.log(`x + y = ${x + y}`) // x + y = 3