JavaScript程序不能独立运行,它需要被嵌入HTML中,然后浏览器才能执行 JavaScript 代码。
通过 script 标签将 JavaScript 代码引入到 HTML 中,有3种方式:
直接写在html文件里,用script标签包住
// JavaScript代码
JavaScript 基础 - 引入方式
代码写在以.js结尾的文件里,通过script标签,引入到html页面中。
// 中间不要写内容
Document
alert('我是外部的 js文件')
代码写在标签内部
注意: 此处作为了解即可,但是vue框架会用这种模式
通过注释可以屏蔽代码被执行或者添加备注信息,JavaScript 支持两种形式注释语法:
使用 // 注释单行代码
JavaScript 基础 - 注释
使用 /* */ 注释多行代码
注:编辑器中单行注释的快捷键为 ctrl + /
在 JavaScript 中 ; 代表一段代码的结束,多数情况下可以省略 ; 使用回车(enter)替代。
但为了风格统一,结束符要么每句都写,要么每句都不写
输出和输入也可理解为人和计算机的交互,用户通过键盘、鼠标等向计算机输入信息,计算机处理后再展示结果给用户,这便是一次输入和输出的过程。
举例说明:如按键盘上的方向键,向上/下键可以滚动页面,按向上/下键这个动作叫作输入,页面发生了滚动了这便叫输出。
alert( )、
document.wirte( )
JavaScript 可以接收用户的输入,然后再将输入的结果输出:
alert( )、document.wirte( )
以数字为例,向 alert( ) 或 document.write( )输入任意数字,他都会以弹窗形式展示(输出)给用户。
上文以举例就不多写了
prompt( )
在编译器中运行 HTML 代码后,会在浏览器中显示网页界面。这时,按下 F12 键或者 Ctrl + Shift + i 键可以打开浏览器的开发者工具,也叫控制台界面。 在控制台界面中,您可以查看网页的 HTML 结构、CSS 样式以及 JavaScript 代码等信息,并且可以进行实时调试和修改。这对于网页开发和调试非常有用,可以帮助开发者更好地理解和修改代码,以实现所需的功能和效果。
通过浏览器的开发者工具,我们可以进行很多有用的操作,包括但不限于:
变量是计算机中用来存储数据的“容器”,它可以让计算机变得有记忆,通俗的理解变量就是使用【某个符号】来代表【某个具体的数值】(数据)
声明(定义)变量有两部分构成:声明关键字、变量名(标识)
关键字是 JavaScript 中内置的一些英文词汇(单词或缩写),它们代表某些特定的含义,如 let 的含义是
声明变量的,看到 let 后就可想到这行代码的意思是在声明变量,如 let age;
let 和 var 都是 JavaScript 中的声明变量的关键字,推荐使用 let 声明变量!!!
声明(定义)变量相当于创造了一个空的“容器”,通过赋值向这个容器中添加数据。
JavaScript 使用专门的关键字 let 和 var 来声明(定义)变量,在使用时需要注意一些细节:
let a = 10; // 声明变量a并赋值为10
let b = 20;
let b = 30; // 报错,b已经被声明过了
let c = 10, d = 20, e = 30; // 同时声明并赋值多个变量
let let = 10; // 报错,"let"是JavaScript的关键字,不能用作变量名
var f = 40; // 声明变量f并赋值为40
var g = 50;
var g = 60; // 不报错,但不推荐这样做,因为会覆盖前一个值
var h = 10, i = 20, j = 30; // 同时声明并赋值多个变量
在大部分情况下,let
和var
的行为类似,但let
具有更严格的块级作用域规则,而var
在函数级作用域内有效。因此,let
可以防止某些在var
中可能出现的错误。例如:
if (true) {
var x = 'var'; // x在整个函数内部都可见
let y = 'let'; // y只在if语句块中可见
}
console.log(x); // 输出 "var"
console.log(y); // 报错,y is not defined,因为y只定义在if语句块中
在这个例子中,我们可以看到var
定义的变量在整个函数内部都可见,而let
定义的变量只在声明它的代码块内可见。这就是let
比var
更严谨的地方,它可以防止一些作用域相关的错误。 因此,现代JavaScript编程中,建议使用let
来定义变量。
概念:使用 const 声明的变量称为“常量”。
使用场景:当某个变量永远不会改变的时候,就可以使用 const 来声明,而不是let。
命名规范:和变量一致
//常量PI被赋值为3.14,代表圆周率。
const PI = 3.14
注:因为是常量,常量不允许重新赋值,声明的时候必须赋值(初始化)
计算机程序可以处理大量的数据,为了方便数据的管理,在JavaScript中,将数据分成了不同的类型:
注:可以通过 typeof 关键字检测数据类型
JavaScript 类型检测
同时,JavaScript是一种弱类型的语言,不用提前声明变量的数据类型
JavaScript 是一种弱类型(或动态类型)语言,这意味着不需要提前声明变量的数据类型。
好比,Java 是一种强类型语言,需要提前声明变量的数据类型。
Java 代码示例:
// 在Java中,需要提前声明变量的数据类型
public class Main {
public static void main(String[] args) {
// 声明一个整型变量
int myInt = 10;
// 声明一个浮点型变量
double myDouble = 20.5;
// 声明一个字符串变量
String myString = "Hello, World!";
System.out.println("myInt: " + myInt);
System.out.println("myDouble: " + myDouble);
System.out.println("myString: " + myString);
}
}
JavaScript 代码示例:
// 在JavaScript中,不需要提前声明变量的数据类型
// 使用var关键字声明变量(在旧版JavaScript中常用,现在推荐使用let或const)
var myInt = 10;
var myDouble = 20.5;
var myString = "Hello, World!";
console.log("myInt: " + myInt);
console.log("myDouble: " + myDouble);
console.log("myString: " + myString);
// 在JavaScript中,变量类型可以在程序执行过程中动态改变
myInt = "Now I'm a string!";
console.log("myInt: " + myInt);
在 Java 中必须提前声明数据类型,并且一旦声明后就不能改变。
而在 JavaScript 中,可以随时更改变量的数据类型。
这就是强类型语言和弱类型语言之间的主要区别之一。
数据类型 |
具体类型 |
解释 |
基本数据类型 |
Boolean |
布尔型 |
String |
字符串型 |
|
Number |
数字型 |
|
Null |
空型 |
|
Undefined |
未定义型 |
|
复杂数据类型 |
Object |
对象 |
true
或 false
。它通常用于条件语句中进行逻辑判断。let isTrue = true;
let isFalse = false;
let myString = "Hello, World!";
let myOtherString = 'Another string.';
注意事项:
\
,输出单引号或双引号对于String类型,你给出了三个注意事项,以下是对于这些注意事项的代码举例:
// 正确
let correctString1 = "Hello";
let correctString2 = 'Hello';
// 错误 - 不成对使用引号
let incorrectString1 = "Hello; // 报错,缺少结束的双引号
let incorrectString2 = 'Hello; // 报错,缺少结束的单引号
// 正确 - 双引号内部嵌套单引号
let nestedString1 = "He said, 'Hello!'";
// 正确 - 单引号内部嵌套双引号
let nestedString2 = 'She said, "Hi!"';
// 错误 - 尝试用自己嵌套自己,这将导致错误
let incorrectNestedString1 = "This is an ""error""."; // 报错,双引号内部不能直接嵌套双引号
let incorrectNestedString2 = 'This is an ''error''.'; // 报错,单引号内部不能直接嵌套单引号
// 使用转义符在双引号字符串内输出双引号
let escapedString1 = "He said, \"Hello!\"";
console.log(escapedString1); // 输出:He said, "Hello!"
// 使用转义符在单引号字符串内输出单引号
let escapedString2 = 'She said, \'Hi!\'';
console.log(escapedString2); // 输出:She said, 'Hi!'
let myNumber = 10;
let myFloat = 10.5;
null
。它表示一个空值或无值的状态。let myNull = null;
let myUndefined;
注意:如果你试图访问一个尚未声明的变量,JavaScript将会抛出一个错误,而不是返回undefined。例如,console.log(notDeclaredVariable)
会导致 ReferenceError: notDeclaredVariable is not defined
。
let myObject = new Object();
myObject.key1 = "value1";
myObject.key2 = 2;
也可以使用字面量方式创建对象:
let myOtherObject = {
key1: "value1",
key2: 2,
};
在JavaScript中,可以用typeof运算符进行数据类型的检测
确实,在JavaScript中,我们可以使用typeof
运算符来检测数据的类型。下面是一些例子:
console.log(typeof "Hello world"); // 输出:string
console.log(typeof 123); // 输出:number
console.log(typeof true); // 输出:boolean
console.log(typeof { a: 1 }); // 输出:object
console.log(typeof [1, 2, 3]); // 输出:object
console.log(typeof null); // 输出:object
console.log(typeof undefined); // 输出:undefined
console.log(typeof function() {}); // 输出:function
这里有几个要注意的点:
typeof
运算符返回的结果是其对应的数据类型。typeof
运算符返回的结果是object
。要区分数组和其他对象,可以使用Array.isArray()
方法。null
,typeof
运算符返回的结果是object
,这是一个历史遗留问题。要检测一个值是否为null
,可以直接使用===
运算符。undefined
,typeof
运算符返回的结果是undefined
。这是因为undefined
是一个特殊的值,表示变量已经被声明,但尚未赋值。typeof
运算符返回的结果是function
。