1、js是什么

前后端或者全栈开发

js应用及增长最快的语言

后端就是node.js

区别:

JS 是“胶水语言”:为 Web 而生,动态、灵活、安全(沙箱环境),但性能受限于解释执行(虽有 JIT 优化)。
C 是“硬件代言人”:贴近机器、高效、无抽象,适合操作系统级开发,但易出内存错误。
C++ 是“全能战士”:兼顾底层控制和高级抽象,性能接近 C,但复杂度高(如指针、模板元编程)。

2、js可以用来做什么

浏览器里做交互式网页

可开发(web/移动端APP、实时联网APP、命令行工具、游戏)

现在很多游戏都是用js+浏览器内核开发

典型应用场景:网页动态效果(如表单验证、动画)、单页应用(SPA)、服务器端(Node.js)。

3、js在哪里运行

以前是要运行在浏览器里的js引擎

firefox:SpiderMonkey

Chrome:V8

大神Ryan Dahl

开源的js引擎从Google浏览器里拿出来,和一个C++结合,叫做Node,就是一个包含Google浏览器v8引擎的C++程序

js代码传递Node执行,js就可以做网站后端了

4、第一个js程序

F12 Console

console.log('hello world');

2+2=4

alert('zmx');

5、搭建开发环境

vscode和node,可以执行js代码,还可以安装第三方库

新建文件夹 index.html

!加上Tab 就会自动生成html代码 作为js代码的容器

拓展中下载Live Server 右击 或者F5 就会打开本地网页 会自动更新

6、在浏览器中运行JavaScript

可以在head和body标签里添加js代码

一般在body标签末尾 script 按下Tab补全

放在body末尾是因为html是从上往下解析,如果先输js,则会忙于解析,而不是显示页面内容

script很多代码要和页面空键交互,比如显示隐藏,保证空键被浏览器先渲染完成

除非某些第三方库要求在head引入

console.log('hello world');

双斜杠注释

7、编码原则之关注点分离

html是页面内容,js是页面行为

将关注点分离

添加index.js

可以在index.html中引用js文件

<script src="index.js"></script>

8、使用node运行JavaScript

安装node 打开命令行 node --version

ctrl+` 快捷打开vscode终端

输入node index.js 即成功执行

9、变量与常量

三个关键字声明 var Let const

var全局作用域,说明两个同名的变量 导致冲突

Let const ens2015

let值可以被修改 const不行

如:

let age = 30;
console.log(age);

重新赋值let就行 而且let可以先不赋值 const就会报错 要在声明时就赋值

但是const是常量,除非声明的是数组或对象

只是不能完全更改

10、原生数据类型

string,Number,BooLean,null,undefined

没有浮点型 小数整数都是Number

例如:

const a = 'coke';  
const b = 10;   
const c = 1.5;   
const d = true;   
const e = null;----->null表示为指针 0x00 null值标记为0 就是object js类型标记和值   
const f = undefined;   
let z;   
  
console.log(typeof e)--->object   

11、模板字符串

老方法

const username = "coke";   
const age = "20";   
console.log("my name is "+ username +" and I am age");   

新方法

console.log(`My name is ${username} and I am ${age}`);   

赋值

const hello = `My name is ${username} and I am ${age}`;   
console.log(hello);   

12、字符串的内置方法

const s = "hello world";   

获取长度

console.log(s.Length);   

全大写

console.log(s.toUpperCase());

全小写

console.log(s.toLowerCase());

全部分割开

console.log(s.substring(0,5));

显示hello   01234开始算

还可以再使用一个方法

console.log(s.substring(0,5).toUpperCase());

字符串转换数组

console.log(s.sqlit(''));   //留空是最小分割,元字符串内容

特定分割内容分割字符串

const s = "technology,computers,it,code";   
console.log(s.split(","));

分割好的有四个元素的数组

显示

0:"technology"

1:"computers"

13、数据类型之数组

数组内部储存很多元素

创建:

1、构造函数,面向对象编程

const numbers = new Array(1,2,3,4,5);    
console.log(numbers);   

2、常用 中括号内可以是不同数据类型的 动态语言的灵活性

const fruits = ['apple','oranges','pears'];   
console.log(fruits);    

也可以这样输出 从0开始的

console.log(fruits[1]);--->oranges   

数组本身的容器不可变,但是容器里面的东西可以变

数组内部方法

(1)使用shift()可以删除数组头部元素

(2)const定义数组后,使用fruits[3] = "grapes"; 再添加元素

(3)fruits.push 在数组末尾添加元素

(4)ftuits.unshift 在数组头部添加元素

(5)fruits.pop 删除数组末尾元素

(6)console.log(Array.isArray("hello"));

判断是否是数组,true

(7)console.log(fruits.indexOf("oranges"));

得到特定元素索引

14、对象

const person = {   
    firstname:"john",   
    lastname: "Doe",   
    age: 30,   
    honnies:["music","movies","sports"],   
    address:{   
        street:'20 main st',   
        city:"shanghai",   
        state: "MA",   
    },   
};   

拥有属性和方法的数据,表示为键值对的组合

花括号表示对象,同一个对象中,属性可以是任何类型,甚至数组或者对象

console.log(person.firstname,person.lastname);   
console.log(person.hobbies[1]);   
console.log(person.address.city);   

结构

const { firstname, lastname } = person;   

同名变量抽取出来

再打印什么就出什么

如console.log(city);

也可以通过

person.email = "john@163.com";

添加新的属性

15、对象数组和JSON

创建对象数组  多个

const todos = [   
    {   
        id:1,   
        text:"hello",   
        isCompleted:true,   
    },    {   
        id:2,   
        text:"nihao",   
        isCompleted:true,   
    },    {   
        id:3,   
        text:"hi",   
        isCompleted:false,   
    },   
];   
console.log(todos[1].text)  ---> nihao   

JSON是一种数据格式,常用于API和服务器与客户端的数据传输过程

网站:freeformatter.com

粘贴对象数组内容就可以生成JSON格式

或者用JSON.stringify()方法

const todoJSON = JSON.stringify(todos)    
console.log(todoJSON);  

16、条件语句

一般都是三等号保证数据类型也相同

const x = 10;   
if (x = = = 10 ){   
    console.log("x is 10");   
} else{   
    console.log("x is not 10");   
}   

其他条件区块

const x = 4;   
if (x = = = 10 ){   
    console.log("x is 10");   
} else if (x > 10){   
    console.log("x is greater than 10");   
} else{   
    console.log("x is less than 10");   
}   

输出 x is less than 10

或 ||

if (x > 5 || y < 10){   
    console.log("111111")   
}  

且 &&

17、三目运算符

const x =10;    
const color = x > 10 ? "red" : "blue";   
console.log(color);   

?条件为真

:条件为假

18、Switch条件语句

switch(color){   
    case 'red':   
     console.log("color is red");   
     break;   
    case "blue";   
     console.log("color is blue");   
     break;   
    default:   
     console.log("color is NULL");   
}   

break才会停止,否则就会都执行完才停

19、循环 for和while

for循环

for (let i = 0; i <= 10; i++){   
    console.log(`For Loop Number: ${i}`);    
}   

定义一个模板,输出所有i值

while循环 要在外部声明循环变量 在while里改循环变量,否则死循环

let i = 0;    
while (i < 10){   
    console.log(`while Loop Number: ${i}`);   
}   

对象数组作为循环对象

for (let i = 0; i < todos.length; i++){   
    console.log(todos[i].text);   
}   

另一种for循环 声明一个新的zmx 就是新的变量

for (let zmx of todos){   
    console.log(zmx.id);   
}    

小结

为js漏洞做铺垫 大多数编程语言类似 还是学c先

gym 最后一天

明天看一节Js 剩余时间看wireshark

欢迎来访 这是我的小窝~ 网安弱鸡 健身屌丝 好不容易搭出来的 大佬略过我
最后更新于 2025-08-06