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

所谓断点调试
打开浏览器的开发者工具,找到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 += '\n';
}
console.log(str);

案例:生成九九乘法表

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

📒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);  //输出结果:3
var arr1 = [1,2];
arr1.length = 4;    //大于原有长度
document.write(arr1);   //输出结果:  1,2,,,

var arr2 = [1,2,3,4];
arr2.length = 2;  //小于原有长度
document.write(arr2);  //输出结果:1,2
var arr = [1];
arr.length = 4;     // 修改数组的长度为4
console.log(arr);   // 输出结果:(4)[1,empty*3]
console.log(arr[1]);// 输出结果:undefined
var 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])//输出结果:3

如何自学黑客&网络安全

黑客零基础入门学习路线&规划

初级黑客
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

如果你想要入坑黑客&网络安全,笔者给大家准备了一份:282G全网最全的网络安全资料包评论区留言即可领取!

7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

如果你零基础入门,笔者建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime;·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;·用Python编写漏洞的exp,然后写一个简单的网络爬虫;·PHP基本语法学习并书写一个简单的博客系统;熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选);·了解Bootstrap的布局或者CSS。

8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,附上学习路线。
img

网络安全工程师企业级学习路线

img
如图片过大被平台压缩导致看不清的话,评论区点赞和评论区留言获取吧。我都会回复的

视频配套资料&国内外网安书籍、文档&工具

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

img
一些笔者自己买的、其他平台白嫖不到的视频教程。
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值