文章目录
一,JS是什么
- JS:全称JavaScript,简称JS,是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言
编程语言分类:
1)前端语言:JS(运行在浏览器上面)…
2)后端语言:Java C++ Python Go JS C#…
1,JS与html、css对比
- 相同点:都可以运行在浏览器上面,他们的运行环境是浏览器;
- 不同点:JS是编程语言,而另外两种不是编程语言,JS的运行环境不只浏览器,也可以是其他环境;
2,JS能做什么
1)开发网站
2)开发app
3)小程序
4)游戏开发 小程序游戏 网页游戏
5)写后端 node.js
6)嵌入式 (一般是用C语言,但JS也可以写)
7)区块链
…
3,JS的三种写法
1)内部写法:把JS代码写在html文件中,一般在学习中写在script标签中;如下:
<script>
var a = 110;
console.log(a)
</script>
2)外部写法:把JS代码写在单独创建的JS文件中,然后在html文件中通过script标签引入,这个在项目开发的时候都这样写;引入如下:
<script src="./文件名.js"></script>
3)行内标签:把JS代码写在开始标签中,当成开始标签的属性;例如button标签中引用onclick()点击事件:
<button onclick="console.log(888)">点我</button>
二,JS的基本语法
1)JS 是区分大小写的,例如var a = 1; var A = 1; 是不同的;
2)在写代码时候,JS会忽略空白符(空格、换行、tab键);
3)语句分号可加可不加;
4)注释:单行注释( //
) ;多行注释( / * 注释 * /
) 注释是给程序员看的
5)标识符和关键字; var a = 10; var 是关键字;a是变量名标识符;
…
1. 什么是代码段
- 一个script标签就是一个代码段。
- JS代码在执行时,是一个代码段一个代码段执行。
三,JS中的变量
(1)数据:打开一个软件或者浏览器时,会有很多数据,也叫状态,而这个状态会保存在两个地方,分别是:内存 硬盘;
- 内存:内存中只是暂时存放的数据,当电脑关机之后,数据就会被清除;
- 硬盘:可以把数据在电脑关机之后不丢失;
(2)变量:简单说就是内存的一个空间;
- 变量名:内存空间的别名 对变量名的操作就是对内存空间的操作
- 变量值:存储在内存空间中的状态(数据)
在JS中定义一个变量:
var a = 110; // 定义了一个变量 变量的名是a 变量的值是110;
1,变量的分类
1)全局变量:在函数内外都能访问到
2)局部变量:只能在函数内部访问到
区别这两个的分界点就是“函数”;只要把变量写在函数里面就是局部变量,只要写在函数外面就是全局变量;
2,加var和不加var的变量的区别
- 在全局代码中,加var的变量会得到提升,不加var的变量不会提升;
console.log(a);// a is not defined
a = 110; //没有加var所以变量没有提升
- 不管加没加var的全局变量,都会成为window的属性
var a = 1;
b = 2;
console.log(window.a) //输出1
console.log(window.b) //输出2
- 没有加var的变量,只能作为全局变量,只要是全局变量,肯定是window的属性;
function f() {
a = 666;
}
f() //执行函数,将666赋值给a
console.log(window.a) //输出666
- 加var的局部变量,不会作为window的属性;
function f() {
var a = 666;
}
f()
console.log(a) //a is not defined;函数执行后没有将变量放入EO(G)中;
- 访问一个全局对象(GO)上不存在的属性,结果就是undefined;
console.log(window.a) // 输出undefined,因为a不存在与全局对象
3,使用let声明变量、和使用const声明常量
- let声明变量的特点:
- let声明的变量没有提升
console.log(a);
let a = 110; // Cannot access 'a' before initialization
- let 配合 {} 也可以形成块级作用域
if(true){
var a = 110; // 全局变量
// b只能在当前的{}中被访问到 出了块就访问不了
let b = 666; // let + {} 形成**块级作用域**
}
console.log(b); // b is not defined(b没有定义)
- 使用let声明的变量不会挂载到GO上
let a = 110;
console.log(window.a); // undefined 访问一个对象上没有属性,得到的就是undefined
- 使用let不能重复声明
let a = 1;
let a = 2;
console.log(a); // Identifier 'a' has already been declared(标识符“a”已经声明)
- 使用const声明常量的特点:
- const声明的是