努力学习ing!!!
PS:因为之前学过c语言和c++,所以笔记比较少(新内容会比较详细)
目录
I. 命名规范及语法格式(可略)
①标识符命名
②规范
❀ 操作符 → 左右两侧各留一个空格
❀ 单行注释 → 前加空格
❀ 其他
II.数组
✿ 定义:指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放 任意类型 的元素
①创建
✿ 用new
✿ 用数组字面量
②访问、遍历
✿ 访问
索引/下标:用来访问数组元素的序号 ( 从0开始 )
✿ 遍历 → 循环一次即可
※※ 代码+图解
<script>
var arr = [1, 3, 6, 8, 10, 11];
console.log("数组长度为:" + arr.length);
// 直接输出数组
console.log(arr);
// 一行一个元素
for (var i = 0; i < arr.length; i++) console.log(arr[i]);
// 数组转字符串,一行输出所有元素
var s = "",
sep = " "; //这样写改分隔方式比较方便
for (var i = 0; i < arr.length; i++) s += arr[i] + sep; //直接写成 + " " 也行
console.log(s);
</script>
✿ 新增元素
※※ 改 length
※※※※ 代码+图解
<script>
var arr = [1, 3, 6];
console.log("数组长度为:" + arr.length);
// 直接输出数组
console.log(arr);
arr.length = 5; //改大
console.log(arr);
arr.length = 2; //改小
console.log(arr);
arr.length = 1; //改成1比较特殊,所以也放上来
console.log(arr);
</script>
※※ 改索引
※※※※ 代码+图解
<script>
var arr = [1, 3, 6];
console.log("数组长度为:" + arr.length);
arr[4] = 9;
console.log(arr);
console.log("被跳过的arr[3]里的值是" + arr[3] + ",因为没有给它赋值");
arr[3] = 2;
console.log(arr);
arr[1] = 8;
console.log(arr);
arr = 666;
console.log(arr);
</script>
PS.学到这的感受: js真的好灵活ww!
※※ 通过循环新增元素
<script>
var arr = [];
console.log("没赋值时,数组长度为:" + arr.length);
for (var i = 0; i < 10; i++) {
arr[arr.length] = i + 1;
//arr.length变化过程,详见红框部分
console.log("第" + i + "个元素为" + arr[i] + ",此时数组长度为" + arr.length);
}
console.log("循环后,数组长度为" + arr.length);
console.log("数组为" + arr);
console.log(arr);
//突然发现arr直接输出和前面有东西输出也不一样,好神奇kkk
</script>
✿ 冒泡排序(小 → 大)
※※ 原理
简单来说,就是相邻元素比较,如果后面的比前面小,就交换元素位置,循环 数组长度-1趟 即可
下面是视频里的思路:
※※ 代码+图解
<script>
var arr = [1, 5, 4, 10, 2, 0];
console.log("数组长度为" + arr.length);
for (var i = 1; i < arr.length; i++) {
for (var j = 0; j < arr.length - i; j++)
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1]
arr[j + 1] = temp;
}
console.log("第" + i + "趟后,数组为:" + arr);
}
</script>
III.函数
①参数及声明方式
※※ 参数
在 JavaScript 中,形参的默认值是 undefined
※※ 声明方式
②返回函数 return 的注意事项
✿ 文字
※※ return 是终止函数
※※ return 只返回一个值,多值取最后
※※ return 可以返回数组
※※ 没有 return ,返回 undefined
✿ 代码+图解
<script>
function txt1() {
return "return是终止函数!";
alert("return是终止函数");
}
function txt2() {
return 1, 2, "多个值时,只返回最后一个"
}
function txt3() {
return [1, 2, "多个值时,只返回最后一个"];
}
var arr = txt3();
function txt4() {
}
console.log(txt1());
console.log(txt2());
console.log(txt3());
console.log(arr); //两种写法,但结果一样
console.log(txt4());
</script>
✿ break 、continue、return 的区别
③ arguments
✿ eg 求任意个数的最大值
思路:这题其实也没啥思路,把arguments当数组用就行
<script>
function f1() {
var maxn = arguments[0];
for (var i = 1; i < arguments.length; i++)
if (arguments[i] > maxn) maxn = arguments[i];
console.log(maxn);
}
f1(1, 9, 8, 78, 1, 100000, 7)
f1(1, 3, 5, 7, 9);
f1(2, 4, 6);
</script>
IV.作用域
①概念
②变量作用域分类
※※ 全局
※※ 局部
※※ 区别
③作用域链
V.预解析
个人理解:简单来说,就是定义变量/函数前调用了,所以会出现 undefined
VI.对象
①概念
②创建
※※ 字面量
感觉跟结构体有点类似
※※※※ 区别
※※ new Object
※※ 构造函数
※※※※ 原因
※※※※ 语法格式
※※※※ 注意事项
※※※※ 构造函数和创建对象
※※※※ new 执行过程
③遍历
k 写成 key 也行
④总结
⑤简易计算器代码
function jsq() {
var result = 0;
while (1) {
var a = prompt("欢迎使用简易计算器:\n1.加法\n2.减法\n3.乘法\n4.除法\n其他.退出\n请输入您的选项:");
console.log(a);
if (a < 1 || a > 4) return "退出程序!";
var num1 = prompt("输入第一个整数:"),
num2 = prompt("输入第二个整数:");
console.log("num1=" + num1 + ",num2=" + num2);
if (a == 1)
result = num1 + num2;
else if (a == 2)
result = num1 - num2;
else if (a == 3)
result = num1 * num2;
else {
if (num2 == 0) {
alert("除数不能为0!请重新输入");
jsq();
}
result = num1 / num2
}
return "计算结果为" + result;
}
}
var result = jsq();
console.log(result);
alert(result);
恭喜看到这的小伙伴,你已经完成 JavaScri三天的学习了嗷~!!
下面进入第四天的学习吧 (。・∀・)ノ゙ → 内置对象和数据类型
有用的话记得点赞评论收藏嗷!!