前端 --- JavaScript 语法基础

x33g5p2x  于2022-05-05 转载在 Java  
字(6.5k)|赞(0)|评价(0)|浏览(1241)

1. 初始JavaScript

1.1 什么是 JavaScript

JavaScript (简称 JS)

  • 是世界上最流行的编程语言之一
  • 是一个脚本语言, 通过解释器运行
  • 主要在客户端(浏览器)上运行, 现在也可以基于 node.js 在服务器端运行

1.2 发展历史

JavaScript 之父 布兰登 * 艾奇 (Brendan Eich)

1.3 JavaScript 和 HTML 和 CSS 之间的关系

  • HTML: 网页的结构(骨)
  • CSS: 网页的表现(皮)
  • JavaScript: 网页的行为(魂)

1.4 第一个程序

  1. <script>
  2. alert("hello");
  3. </script>

2. JavaScript 的书写形式

1. 行内式

直接嵌入到 html 元素内部

  1. <input type="button" value="点我一下" onclick="alert('你还真点')">

点击之后会显示提示框

2. 内嵌式

写到 script 标签中

  1. <script>
  2. alert("hello world");
  3. </script>

3. 外部式

写到单独的 .js 文件中

  1. <script src='1.js'></script>

1.js代码

  1. alert('hello');

3. JavaScript 基本语法

3.1 注释

**单行注释: ** //
**多行注释: ** /* */

  1. // 单行注释
  2. /*
  3. 多行注释
  4. 多行注释
  5. */

3.2 输入: prompt

弹出一个输入框

  1. <script>
  2. let name = prompt("请输入你的姓名");
  3. alert(name);
  4. </script>

3.3 输出: alert

弹出一个警告框

  1. <script>
  2. alert('hello');
  3. </script>

3.4 输出: console.log

在控制台打印一个日志

  1. <script>
  2. console.log("这是打印日志的");
  3. </script>

在浏览器中按 F12 ====> 找到 Console 窗口
这里就是显示日志的

3.5 其他注意事项

  1. .表示取对象中的某个属性或者方法. 可以直观理解成 “的”. console.log 就可以理解成: 使用 “控制台” 对象 “的” log方法
  2. 大小写敏感,JavaScript 对字母的大小写敏感.例如: usernameuserName是两个不同的变量
  3. 每行结尾的分号,JavaScript中并不要求必须使用分号(;)作为语句结束的标记.
  4. JS 中字符串常量可以使用单引号表示, 也可以 使用双引号表示
  5. letvar的区别 参考文章: 具体文章

4. JavaScript 语法概述

4.1 基本用法

变量声明

  1. let a = 20;
  2. let b = "helloworld";

变量的使用

  1. let name = prompt("请输入你的姓名");
  2. let age = prompt("请输入你的年龄");
  3. let cl = prompt("请输入你的班级");
  4. console.log(name);
  5. console.log(age);
  6. console.log(cl);

4.2 理解动态类型

Java是一种静态类型,一旦开始定义了类型,后面就无法改变了
而JavaScript是动态类型,类型可以改变。

  1. <script>
  2. let a = 20; // 数值类型
  3. console.log(a);
  4. a = "helloworld"; // 字符类型
  5. console.log(a);
  6. </script>

4.3 基本数据类型

JS 中 内置的几种类型

类型描述
number数字. 不区分整数和小数.
booleantrue 真,false 假.
string字符串类型.
undefined只有唯一的值 undefin. 表示未定义的值.
null只有唯一的值null.表示空值

① number 数字类型

JS 中是不区分整数和浮点数,统一都使用"数字类型"来表示

数字进制表示

二进制: 以 0b0B开头
八进制: 以 0 开头
十六进制: 以 0x0X 开头

  1. <script>
  2. // 十六进制 以 "0x" 或 "0X" 开头
  3. let a = 0xff;
  4. let b = 0X123;
  5. // 八进制 以 "0" 开头
  6. let c = 07;
  7. // 二进制 以 "0b" 或 "0B" 开头
  8. let d = 0b1010;
  9. let e = 0B1111;
  10. </script>
浮点型数据

科学计数法的表示方法,在实数后面跟随字母e或者E,后面加上一个带正号负号的整数指数,正号可以省略.

  1. <script>
  2. // 普通的浮点型
  3. let a = 1.2;
  4. let b = 6e3;
  5. // 科学计数法的表示
  6. let c = 7e+3;
  7. let d = 8E-3;
  8. </script>
特殊的数字值
  • Infinity: 无穷大, 大于任何数字. 表示数字已经超过了 JS 能表示的范围.
  • -Infinity: 负无穷大, 小于任何数字. 表示数字已经超过了 JS 能表示的范围.
  • NaN: (Not a Number)表示当前的结果不是一个数字.
  1. <script>
  2. let max = Number.MAX_VALUE;
  3. // 得到 Infinity
  4. console.log(max * 2);
  5. // 得到 -Infinity
  6. console.log(-max * 2);
  7. // 得到 NaN
  8. console.log('hehe' - 10);
  9. </script>

② string 字符串类型

基本规则

字符串字面值需要使用引号引起来, 单引号双引号均可

  1. <script>
  2. let a = 'hello';
  3. let b = "hello";
  4. let c = hello; // error 这里出错
  5. </script>

包含字符串的引号必须匹配,如果字符串前面使用的是双引号,那么在字符串前面使用的是双引号,那么在字符串后面也必须使用双引号,反之都使用单引号.

转义字符
转义字符描述
\b退格
\n换行符
\t水平制表符,Tab空格
\f换页
单引号
"双引号
\v垂直字符表
\r回车符
\反斜杠
求长度

使用String的length属性即可

  1. <script>
  2. let a = "hehe";
  3. let b = "哈哈";
  4. console.log(a.length);
  5. console.log(b.length);
  6. </script>

字符串的拼接

使用 + 进行字符串拼接

  1. <script>
  2. let a = "hehe";
  3. console.log(a + "world");
  4. console.log(a + 10);
  5. </script>

③ boolean 布尔类型

  1. <script>
  2. console.log(1 == 1);
  3. // 下面的写法不科学 不建议使用
  4. console.log(true + 1);
  5. console.log(false + 1);
  6. </script>

④ undefined 未定义数据类型

  1. <script>
  2. let a;
  3. console.log(a);
  4. // undefined 和 字符相加
  5. console.log("hello" + a);
  6. // undefined 和 数字相加
  7. console.log(1 + a);
  8. </script>

⑤ null 空值类型

  1. <script>
  2. let a = null;
  3. console.log(a);
  4. </script>

5. 运算符

5.1 算术运算符

+-*/% 求模

  1. <script>
  2. console.log(1+2);
  3. console.log(3-2);
  4. console.log(2*3);
  5. console.log(4/4);
  6. console.log(4%3);
  7. </script>

5.2 赋值运算符 & 复合赋值运算符

=``+=``-=``*=``/=``%=

  1. <script>
  2. let a = 1;
  3. console.log(a);
  4. a+=1;
  5. console.log(a);
  6. a-=1;
  7. console.log(a);
  8. a*=2;
  9. console.log(a);
  10. a/=2;
  11. console.log(a);
  12. a%=2;
  13. console.log(a);
  14. </script>

5.3 自增自减运算符

++: 自增1 --: 自减1

  1. <script>
  2. let a = 1;
  3. // 前置的时候 先加1 再使用
  4. // 后置的时候 先使用 再加1
  5. a++;
  6. console.log(++a);
  7. a--;
  8. console.log(--a);
  9. </script>

5.4 比较运算符

< 小于
> 大于
<= 小于等于
>= 大于等于
==比较相等(会进行隐式类型转换)
!= 不等于
===比较相等(不会进行隐式类型转换)
!== (不会进行隐式类型转换)

  1. <script>
  2. console.log("5" == 5);
  3. console.log("5" === 5);
  4. </script>

5.5 逻辑运算符

  • && 与: 一假则假
  • || 或: 一真则真
  • !

5.6 位运算

  • & 按位与 同为1时为1,否则为0
  • | 按位或 同为0时为1,否则为0;
  • ~ 按位取反 当是1就取0,是0就取1
  • ^ 按位异或 相同就为0,相异为1
  1. <script>
  2. // 1 => 001
  3. // 3 => 011
  4. console.log( 1 & 3);
  5. console.log( 1 | 3);
  6. console.log( 1 ^ 3);
  7. </script>

5.7 移位运算

  • << 左移
  • >> 有符号右移(算术右移)
  • >>> 无符号右移(逻辑右移)

6. JavaScript 基本语句

6.1 条件判断语句

if 语句

  1. // 形式1
  2. if (条件) {
  3. 语句
  4. }
  5. // 形式2
  6. if (条件) {
  7. 语句1
  8. } else {
  9. 语句2
  10. }
  11. // 形式3
  12. if (条件1) {
  13. 语句1
  14. } else if (条件2) {
  15. 语句2
  16. } else if .... {
  17. 语句...
  18. } else {
  19. 语句N
  20. }

三元表达式

是 if else 的简化写法.
条件 ? 表达式1 : 表达式2

switch 语句

  1. switch (表达式) {
  2. case 1:
  3. 语句1;
  4. break;
  5. case 2:
  6. 语句2:
  7. break;
  8. default:
  9. 语句N;
  10. }

6.2 循环语句

while 循环

  1. while (条件) {
  2. 循环体;
  3. }

continue 结束当前这次循环,继续其他循环
break 结束整个循环

for 循环

  1. for (表达式1; 表达式2; 表达式3) {
  2. 循环体
  3. }

7. 数组

7.1 数组的创建

使用 new 关键字创建

  1. // Array 的 A 要大写
  2. let arr = new Array();
  1. let arr = [];
  2. let arr2 = [1, 2, 'haha', false]; // 数组中保存的内容称为 "元素"

7.2 获取数组元素

  1. <script>
  2. let arr =[1,2,3];
  3. console.log(arr[0]);
  4. console.log(arr[-1]);
  5. console.log(arr[3]);
  6. </script>

7.3 新增数组元素

1. 通过修改 length 新增

  1. <script>
  2. let arr = [1,2,3];
  3. arr.length = 6;
  4. console.log(arr);
  5. </script>

2. 通过下标新增

  1. <script>
  2. let arr = [1,2,3];
  3. arr[5] = 6;
  4. console.log(arr);
  5. </script>

3. 使用 push 进行追加元素

  1. <script>
  2. let arr = [1,2,3];
  3. let newarr =[];
  4. for(var i = 0; i < arr.length; i++){
  5. newarr.push(arr[i]);
  6. }
  7. console.log(newarr);
  8. </script>

7.4 删除数组中的元素

  1. <script>
  2. let arr = [1,2,3];
  3. arr.splice(0,1);
  4. console.log(arr);
  5. </script>

8. 函数

8.1 语法格式

  1. // 创建函数/函数声明/函数定义
  2. function 函数名(形参列表) {
  3. 函数体
  4. return 返回值;
  5. }
  6. // 函数调用
  7. 函数名(实参列表) // 不考虑返回值
  8. 返回值 = 函数名(实参列表) // 考虑返回值

代码示例:

  1. <script>
  2. function sayHello() {
  3. console.log("hello");
  4. }
  5. sayHello();
  6. </script>

8.2 关于参数个数

**实参和形参之间的个数可以不匹配.**但是实际开发一般要求形参和实参个数要匹配
代码示例:

  1. <script>
  2. function Add(a,b,c) {
  3. a = a | 0;
  4. b = b | 0;
  5. c = c | 0;
  6. return a + b + c;
  7. }
  8. console.log(Add(1,2,3));
  9. console.log(Add(1,2));
  10. </script>

8.3 函数表达式

另外一种函数的定义方式

  1. <script>
  2. let add = function(a,b) {
  3. let sum = 0;
  4. for (let i = 0; i < arguments.length; i++) {
  5. sum += arguments[i];
  6. }
  7. return sum;
  8. }
  9. console.log(add(10,20));
  10. console.log(add(1,2,3,4,5));
  11. console.log(typeof add);
  12. </script>

9. 对象

在 JS 中, 字符串, 数值, 数组, 函数都是对象.

9.1 使用 字面量 创建对象

创建对象 代码:

  1. var student = {
  2. name:'蔡徐坤',
  3. heigth: 200,
  4. weight: 300,
  5. sayHello: function() {
  6. console.log("hello");
  7. }
  8. }

使用对象的属性和方法 代码:

  1. console.log(student.name);
  2. console.log(student.heigth);
  3. student.sayHello();

9.2 使用 new Object 创建对象

  1. <script>
  2. var student = new Object();
  3. student.name = "蔡徐坤";
  4. student.height = 200;
  5. student.weight = 300;
  6. student.sayHello = function() {
  7. console.log("hello");
  8. }
  9. console.log(student.name);
  10. console.log(student.weight);
  11. student.sayHello();
  12. </script>

9.3 使用 构造函数 创建对象

基本语法:

  1. function 构造函数名(形参) {
  2. this.属性 = 值;
  3. this.方法 = function...
  4. }
  5. var obj = new 构造函数名(实参);

代码示例:

  1. <script>
  2. function Student(name,id,say){
  3. this.name = name;
  4. this.id = id;
  5. this.say = function() {
  6. console.log(say);
  7. }
  8. }
  9. let xiaoMing = new Student('小明',1,'hello');
  10. let xiaoHong = new Student('小红',2,'嗨害嗨');
  11. let xiaoQiang = new Student('小强',3,'你好!');
  12. console.log(xiaoMing);
  13. console.log(xiaoHong);
  14. xiaoQiang.say();
  15. </script>

相关文章

最新文章

更多