你好,我是阿ken??

版权声明:本文为CSDN博主「」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
另外,博文中某些图片或内容可能出自网络,如有侵权或问题,请及时私信我

有学妹想以后做前端,就会问到 JavaScript怎么学的问题,在多次百般盘问下,阿ken?? 决定贡献出自己之前学习 JavaScript时的笔记。

哈哈哈其实哈**(偷偷告诉你们**) 这篇文只有6k字,只是不写万字你们怎么会进来呢

得得得,我们开始言归正传!

目录

??3.1_循环结构

??3.1.1_for 语句

??3.1.2_while 语句

??3.1.3_do…while 语句

??3.1.4_continue 关键字

??3.1.5_break 关键字

??3.2_数组

??3.2.1_创建数组

??3.2.2_数组长度

??3.3_数组案例

??3.3.1_修改数组长度

??3.3.2_新增或修改数组元素

??3.3.3_筛选数组

??3.3.4_删除指定的数组元素

??3.3.5_反转数组元素排序

??3.4_数组排序算法

??3.4.1_冒泡排序

??3.4.2_插入排序

??3.5_二维数组

???3.5.1_创建二维数组

??3.5.2_二维数组求和

??3.5.3_二维数组转置


??3.1_循环结构

??3.1.1_for 语句

for(初始化变量; 条件表达式; 操作表达式) {
?// 循环体
}

先初始化变量后,判断是否满足条件表达式
如果满足条件表达式
则执行循环体语句
如果不满足,结束循环

执行完循环体语句后,再执行操作表达式,然后判断是否满足条件表达式
如果满足条件表达式
则执行循环体语句
如果不满足,结束循环

然后循环以往,直至不满足语句条件,循环结束

所谓断点调试
打开浏览器的开发者工具,找到Sources面板,在里面的网页源代码中可设置断点(单击某一行行号即可添加断点,再次单击即可取消)
在添加断点后,刷新网页,程序就会在断点的位置暂停,此时按F11键让程序单步执行,在旁边的Watch中可以观察变量的值的变化。

案例:生成 i 行 j 列的星星图案

var j = prompt('请输入列数:');
var str = '';
for(var x = 0; x < i; x++) {
for(var y = 0; y < j; y++) {
str += '*';
}
str += '
';
}
console.log(str);

案例:生成九九乘法表

for(var i = 1; i <= 9; i++) {
for(var o = 1; o <= i; o++) {
console.log ('i' + '*' + 'o' + '=' + i * o + '   ' );
}
console.log ('
');
}

??3.1.2_while 语句

while 语句在条件表达式为 true 的前提下,循环执行指定的一段代码,直到条件表达式为 false 时结束循环。

while (条件表达式){
// 循环体
}

??3.1.3_do…while 语句

do {
// 循环体
} while (条件表达式);

??3.1.4_continue 关键字

该关键字可以在for、while 以及 do…while 循环体中使用
它用来**跳出本次循环**,也就是跳过了continue后面的代码

for(var i = 1; i <= 5; i++) {
if (i == 3){
continue; ?// 跳出本次循环,直到跳到 i++
}
console.log('我吃完了第' + i + '个苹果');
}// 我吃完了第1个苹果
// 我吃完了第2个苹果
// 我吃完了第4个苹果
// 我吃完了第5个苹果

??3.1.5_break 关键字

break 关键字可以用在 switch 语句和循环语句中,在循环语句中使用时,其作用是立即跳出整个循环,也就是循环即将结束。

for(var i = 1; i <= 5; i++){
if (i == 3){
break; ?// 跳出本次循环,直到跳到 i++
}
console.log('我吃完了第' + i + '个苹果');
}// 我吃完了第1个苹果
// 我吃完了第2个苹果

??3.2_数组

??3.2.1_创建数组

第一种

var arr1 = new Array(); ? ? ? ? //空数组
var arr2 = new Array('苹果','橘子','香蕉','桃子'); ? ? ? ?//里面有4个元素

第二种

var arr3 = []; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//空数组
var arr4 = ['苹果', '橘子', '香蕉', '桃子']; ? ? ? ? //里面有4个元素

在数组中保存各种常见的数据类型

var arr5 = [123,'abc',true,null,undefined];

在数组中保存数组

var arr6 = [12,[21,22],41]; ? ? ? ? ? ? ? ? ? ?

??3.2.2_数组长度

数组名.length

??3.3_数组案例

??3.3.1_修改数组长度

var arr = ['a','b','c'];
console.log(arr.length); ?//输出结果:3var arr1 = [1,2];
arr1.length = 4; ? ?//大于原有长度
document.write(arr1); ? //输出结果: ?1,2,,,var arr2 = [1,2,3,4];
arr2.length = 2; ?//小于原有长度
document.write(arr2); ?//输出结果:1,2var arr = [1];
arr.length = 4; ? ? // 修改数组的长度为4
console.log(arr); ? // 输出结果:(4)[1,empty*3]
console.log(arr[1]);// 输出结果:undefinedvar arr = [1,2,,4];
console.log(arr); ? // 输出结果:(4)[1,2,empty,4]var arr = new Array(4);
console.log(arr); ? // 输出结果:(4)[empty*4]var arr = [1];
arr[3] = 4; ? ? ? ?// 向数组中添加一个元素,索引为3
console.log(arr); ?// 输出结果:(4)[1,empty*2,4]

??3.3.2_新增或修改数组元素

var arr = ['red', 'green', 'blue'];
arr[3] = 'pink'; ? //新增元素
console.log(arr); ?//(4)["red","green","blue","pink"]
arr(0) = 'yellow'; //修改元素
console.log(arr); ?//(4)["yellow","green","blue","pink"]

??3.3.3_筛选数组

将一个数组中所有大于或等于10的元素筛选出来

var arr = [2,0,6,1,77,0,52,0,25,7];
var newArr = [];
var j = 0;
for(var i = 0; i < arr.length; i++) {
if(arr[i] >= 10) {
newArr[j++] = arr[i]; ?//新数组索引号从0开始,依次递增
}
}
console.log(newArr); ?//输出结果:(3)[77,52,25]

??3.3.4_删除指定的数组元素

删除数组中所有值为0的元素

var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
for (var i = 0;i < arr.length;i++){
if(arr[i] != 0){
newArr[newArr.length] = arr[i];
}
}
console.log(newArr); ?//输出结果:(7)[2,6,1,77,52,25,7]

??3.3.5_反转数组元素排序

var arr = ['red','green','blue','pink','purple'];
var newArr = [];
for(var i = arr.length-1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
// ?输出结果:(5)["purple","pink","blue","green","red"]
console.log(newArr);

??3.4_数组排序算法

??3.4.1_冒泡排序

var arr = [10,7,5,27,98,31];
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+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
document.write(arr); ?// 输出结果:5,7,10,27,31,98(从小到大输出)

??3.4.2_插入排序

var arr = [10, 8, 100, 31, 87, 70, 1, 88];// 按照从小到大的顺序排列,先遍历无序数组下标
for (var i = 1; i < arr.length; i++){
// 遍历并比较一个无序数组元素与所有有序数组元素
for(var j = i; j > 0; j--){
if(arr[j-1] > arr[j]) {
var temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
}
document.write(arr); ?// 输出结果: 1,8,10,31,70,87,88,100
console.log(arr); // (8)
// 当定义数组时数字加上单引号或双引号时console.log输出: (8) ["1", "10", "100", "31", "70", "8", "87", "88"]// 错误反例:
var arr = [10, 8, 100, 31, 87, 70, 1, 88];
?? ??? ??? ?
?? ??? ??? ?// 按照从小到大的顺序排列,先遍历无序数组下标
?? ??? ??? ?for(var i = 1; i < arr.length; i++){
?? ??? ??? ??? ?
?? ??? ??? ??? ?for(; i > 0; i--){
?? ??? ??? ??? ??? ?if(arr[i-1] > arr[i]){
?? ??? ??? ??? ??? ?var a = arr[i-1];
?? ??? ??? ??? ??? ?arr[i-1] = arr[i];
?? ??? ??? ??? ??? ?arr[i] = a;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?console.log(arr);
?? ??? ??? ?// 内for循环里没有定义新的变量去赋值i而是直接用外for循环中的i,不会报错但会一直运行不会出现结果

??3.5_二维数组

??3.5.1_创建二维数组

//使用Array创建数组
var info = new Array(
new Array('Tom',13,155),
new Array('Lucy',11,152)
);
console.log(info[0]); ? ?//输出结果:(3)["Iom",13,155]
console.log(info[0][0]);//输出结果:Tom//使用“[]”创建数组
var nums = [[1,2], [3,4]];
console.log(nums[0]); ?//输出结果:(2) [1,2]
console.log(nums[1][0])//输出结果:3var arr = []; ?//创建一维空数组
for (var i = 0;i < 3; i++){
arr[i] = []; ?//将当前元素设置为数组
arr[i][0] = i;// 为二维数组元素赋值
}

新创建的二维数组结果如下:

[[0],[1],[2]]

??3.5.2_二维数组求和

var arr = [[12,59,66],[100,888]];
var sum = 0;
for (arr i = 0;i < arr.length;i++){ ? //遍历arr数组
for(var j = 0;j < arr[i].length;j++){ //arr[i]数组
sum +=arr[i][j]; ? ? ? ? ? ? ? ? ? ? //二维数组元素累加
}
}?
console.log(sum); ? ? ? ? ? ? ? ? ? ?//输出结果:1125

??3.5.3_二维数组转置

var arr = {
['a','b','c'],['d','e','f'],['g','h','i'],['j','k','l']
};
var res = [];
for(var i = 0;i < arr[0].length;i++){
res[i] = [];
for(var j = 0;j < arr.length;j++){
res[i][j] = arr[j][i]; ?//为二维数组赋值
}
}
console.log(res);

本篇文到这里暂时告一段落咯,请期待阿ken下次更文~

下面是本系列 —— 【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记 已更新的文章,有兴趣可看下哦~

【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记 (一)

【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记 (二)

原创不易,感谢观众老爷们的大力支持,请点亮一下下面的大拇哥、评论区、小星星

最后 感激相遇 我是阿ken??

【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记(三)相关推荐

  1. 【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记(二)

    你好,我是阿ken?? 版权声明:本文为CSDN博主「」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 另外,博文中某些图片或内容可能出自网络,如有侵权或问题,请及 ...

  2. 【熬夜猛肝万字博文】学妹问我怎么入门 Javascript,百般盘问下我终于决定贡献出自己的 JavaScript入门笔记(四)

    感激相遇,你好,我是阿ken

  3. 学妹问我Java枚举类与注解,我直接用这个搞定她!

    很多人问我学妹长什么样,不多说 上图吧! 学妹问我Java枚举类与注解,我直接一篇文章搞定! 一.枚举类 ① 自定义枚举类 ② enum关键字定义枚举类 ③ enum 枚举类的方法 ④ enum 枚举 ...

  4. python记忆口诀-学妹问我: 如何提高编程能力

    聊天截图 聊天截图 前言 开局两张图,剩下全靠吹了. 上面这两张图便是写这篇文章的原由. 对话框的另一边,是一位大二计算机科班在读的小姐姐,看似平静的文字背后透露着迷茫与困惑,还对未来的焦虑. 透过屏 ...

  5. python记忆口诀-学妹问我:如何提高编程能力

    聊天截图 聊天截图前言 开局两张图,剩下全靠吹了. 上面这两张图便是写这篇文章的原由. 对话框的另一边,是一位大二计算机科班在读的小姐姐,看似平静的文字背后透露着迷茫与困惑,还对未来的焦虑. 透过屏幕 ...

  6. 学妹问H哥:你是如何平衡工作和生活的?

    作者 l Hollis 来源 l Hollis(ID:hollischuang) 这几天被B站的<后浪>刷屏了,不管别人怎么看,我个人觉得还挺不错的.很多人说<后浪>传达出一种 ...

  7. 学妹问单例模式,我用最通俗易懂的讲解让她学会了

    前记 昨天学妹抱怨专业课中的java 23个设计模式.她问:23个设计模式越看越扎心,尤其是单例模式,有没有什么破解之法.我告诉她 java 23个设计模式看上去多,要挑知识重点并结合程序实例来记忆, ...

  8. 学妹问的Spring Bean常用配置,我用最通俗易懂的讲解让她学会了

    你好呀,我是沉默王二,一枚有趣的程序员,写的文章一直充满灵气,力求清新脱俗.昨天跑去王府井的小米店订购了一台小米 10,说是一周之内能到货,但我还是忍不住今天就想见到她.见我茶不思饭不想的,老婆就劝我 ...

  9. 学妹问我:怎么从网页下载所有图片?我答:天机不可泄露

    @Author:Runsen 最近,有一个学妹关注我,想让我帮她把一个网页的所有图片下载下来. 正所谓,私信找我,那是看得起我,虽然不知道是男还是女,这不,我就解决了这个简单的问题. 如果您曾经想在某 ...

最新文章

  1. 下一代零售技术:物联网、人工智能和5G将如何影响购物体验
  2. linux系统负载检查方法
  3. 小红帽怎样装图形化界面_纯技术篇:U盘装系统,不再多花冤枉钱
  4. mysql数据库基础 博客园_MySQL数据库基础
  5. php什么程度算学会,十天学会PHP - 序1,学会的标准是什么?(20180820-1)
  6. node.js通过edge访问.net动态链接库
  7. 突破变态限制快捷方式提权法
  8. java项目源码分享_ssm项目分享600套
  9. 实体消歧方法(1)__BOOTLEG
  10. 双摄测距原理_一文读懂双摄像头工作原理
  11. Visio 导出图片时字符间距错乱
  12. Lombok 的作者,成功讨伐 IntelliJ IDEA!
  13. js、jq知识点文档
  14. Craps 赌博游戏 含押注
  15. 非组蛋白带什么电荷_非组蛋白是构成真核生物染色体的基本结构蛋白, 富含带正电荷的精氨酸( Arg ) 和赖氨酸( Lys ) 等碱 性氨基酸。_学小易找答案...
  16. 工控协议(二):Modbus TCP/IP 学习笔记
  17. 冯诺依曼体系各硬件工作原理解析
  18. 我要搬家到51CTO了
  19. c语言中文字模描点算法,点阵字模工具编程是怎么编的?
  20. 廖雪峰Git教程笔记与总结 -- Git简介、常用命令、分支管理

热门文章

  1. git clone 使用源仓库换行符风格
  2. servu用户信息如何导出_用户如何增强信息安全防护意识
  3. 分数傅里叶变换——FRFT
  4. windows7 设置png格式图片为桌面壁纸
  5. 计算机硬件加速怎么开,电脑中如何开启3d硬件加速|电脑开启3d硬件加速图文教程...
  6. 圆满收官!第六届99趣拿节精彩盘点!
  7. 情侣空间单页HTML模板
  8. C语言入门——自我介绍
  9. cocos2dx的文章
  10. SourceTree提交vue前端代码报错git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\