JavaScript拓展①
严格检查
本章节记录学习一些JavaScript与Java不一样的地方。
因为JavaScript特别不严谨的特性,我们需要一个严格检查语句放在文档的开头来规范我们的使用,它必须写在第一行。在平时的使用中,尽量都在“use strict”环境下作业。
普通代码:
//声明变量
a = 1
在JavaScript中以上变量的声明是成立的,且这样声明出来的变量还是全局变量。
严格检查下的代码:
//严格检查
"use strict"
//声明变量
let a = 1
let是控制变量范围的关键字,是es6带来的新特征。与var相像,但作用范围比var更小,也更容易控制。在严格检查下,只要是局部变量都尽量使用let来定义。
数据类型详解
字符串
多行字符
"use strict"
//多行字符
let str = `加
油
乌
鸦`
alert(str)
转义字符
\' //转义'
\t //制表符
\n //换行
\u //字符编码
\x //ascll码
模板字符串
"use strict"
let name = '乌鸦';
let age = 18;
let msg = `我的名字是${name},我今年${age}岁了。`;
console.log(msg);
使用${}在字符串中调用变量。
常用方法
-
substring(截取字符串)
substring(3,5),从下标3往后截取5个。
数组
示例代码:
"use strict"
let array = [1, 2, 3, 4, 5, 6];
console.log(array);
控制台测试:
> array.length
< 6
> array[0]=0
< 0
> array
< (6) [0, 2, 3, 4, 5, 6]
> array.length = 10
< 10
> array
< (10) [0, 2, 3, 4, 5, 6, empty × 4]
> array[9]
< undefined
> array[9]=10
< 10
> array
< (10) [0, 2, 3, 4, 5, 6, empty × 3, 10]
通过测试我们可以知道,在JavaScript中数组的长度是可变的。
且长度变化的情况下,多出来的元素用undefined填充,减少长度会让元素从后往前丢失。
常用方法:
> array
< (10) [0, 2, 3, 4, 5, 6, empty × 3, 10]
> array.push("hello","world")
< 12
> array
< (12) [0, 2, 3, 4, 5, 6, empty × 3, 10, 'hello', 'world']
> array.pop()
< 'world'
> array
< (11) [0, 2, 3, 4, 5, 6, empty × 3, 10, 'hello']
> array.unshift('world')
< 12
> array
< (12) ['world', 0, 2, 3, 4, 5, 6, empty × 3, 10, 'hello']
> array.shift()
< 'world'
> array
< (11) [0, 2, 3, 4, 5, 6, empty × 3, 10, 'hello']
-
push(在数组尾部压入元素。)
-
pop(弹出数组尾部的元素。)
-
unshift(在数组头部压入元素)
-
shift(弹出数组头部的元素)
> array
< (7) [123, 154, 11, 5, 0, 2, 3]
> array.sort()
< (7) [0, 11, 123, 154, 2, 3, 5]
> array.reverse()
< (7) [5, 3, 2, 154, 123, 11, 0]
> array.join('-')
< '0-11-123-154-2-3-5'
-
sort(元素排序)
sort按照字典排序,看首字母,非升降序。
-
reverse(反转元素)
-
join(打印拼接数组,使用特定的字符串链接元素)
对象
JavaScript中的对象就是若干个键值对。你确定这玩意儿是个对象hhhh
且所有的键都是字符串,值是任意对象。
"use strict"
let Person = {
name: "Crow",
age: 18,
gender: "男"
}
> Person
< {name: 'Crow', age: 18, gender: '男'}
> Person.name
< 'Crow'
> delete Person.name
< true
> Person
< {age: 18, gender: '男'}
> Person.say = "hahaha"
< 'hahaha'
> Person
< {age: 18, gender: '男', say: 'hahaha'}
JavaScript中对象是动态的,可以随意增减属性。
流程控制
懵了,整个JavaScript的流程控制跟Java一毛一样,跳过。
对了,提一句,JavaScript的增强for也就是for-each更像C#的而不是JAVA。
let array = [0, 1, 5, 1, 3, 5, 1, 'hello'];
array.forEach(function (value) {
console.log(value);
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人