首页 > 编程语言 >01. JavaScript基础知识

01. JavaScript基础知识

时间:2023-01-07 19:23:13浏览次数:45  
标签:01 console log JavaScript 基础知识 let typeof 字符串 JS

一、JavaScript简介

  JavaScript 是一门解释型编程语言,解释型编程语言指代码不需要手动编译,而是通过解释器边解释边执行。所以,要运行 JS,我们需要在计算机中安装 JS 的解释器。我们使用的浏览器已经集成了 JS 的解释器。JS 是一门函数式编程语言。在 JS 中,函数可以向其它类型的值一样赋值给任意变量,也可以作为参数传递给其它函数。JS是一门单线程的编程语言。JS 同一时间只能做一件事,一件事完成才会继续做另一件事。JS 是一门面向对象的语言。

二、JavaScript的编写位置

  1. 可以将 JS 编写到网页内部的 <script> 标签中;
  2. 可以将 JS 编写到外部的 JS 文件中,然后通过 <script> 标签进行引入
  3. 可以将 JS 代码编写到指定的属性中
<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript</title>
        <meta charset="UTF-8">

        <!-- JS代码需要编写到script中 -->
        <script>
            // 在网页中弹出一个警告框
            alert('Hello world!');
            // 在控制台打印
            console.log('你好,世界');
            // 往文档(网页)中写入内容
            document.write('世界,你好');
        </script>

        <!-- 通过外部js文件引入 -->
        <script src="./script/script.js"></script>
    </head>
    <body>
        <!-- 将JS代码写到指定的属性 -->
        <br>
        <button onclick="alert('按钮被点击了')">按钮</button>
        <br>
        <a href="javascript:alert('超链接被点击了')">超链接</a>
    </body>
</html>

  script.js 文件位于它的下一级目录【script】中:

alert('外部的JS文件执行了');

<script> 标签同时只能有一个作用,要么写 JS 代码,要么引入外部 JS 文件,不能同时写 JS代码 和 引入外部 JS文件

三、注释

  注释中的内容会被解释器忽略,可以通过注释来对代码进行解释说明,也可以通过注释来注释掉不想被执行的代码;

  • 单行注释://,注释内容从 // 始到本行和结尾
  • 多行注释:/* */,注释内容以 /* 开头,以 */ 结尾,可以注释多行
/*
    1、JS中严格区分大小写
    2、在JS中多个空格和换行会被忽略
    3、JS中每条语句都应该以 ; 结尾
        JS中具有自动添加;的机制,所以如果不写分号,解释器会自动添加
*/ 

alert(   
    123  
);               // alert()用来弹出一个警告框

四、关键字

  JS 关键字指在 JS 中有特殊含义的单词。

abstract continue finally instanceof private this
boolean default float int public throw
break do for interface return typeof
byte double function long short true
case else goto native static var
catch extends implements new super void
char false import null switch while
class final in package synchronized with

五、字面量

  字面量就是一个一个的值,字面量所表示的意思就是它的字面值,在 JS 中可以直接使用字面量;

字面量类型 说明 举例
数值型 数字
NaN 表示非数字
Infinity 表示无穷大
123、3.14
字符串 用引号引起的内容 "123"、'abc'
布尔值 布尔值,表示真假 true、false
未定义值 一个特殊的值,表示变量还没有赋值 undefine
空值 一个特殊的值,空值 null
console.log(123);
// typeof可以查看值的类型,返回的是一个字符串
console.log(typeof 123);

console.log(3.14);
console.log(typeof 3.14);

console.log(NaN)
console.log(typeof NaN);

console.log(Infinity)
console.log(typeof Infinity);

console.log('hello')
console.log(typeof 'hello');

console.log(true)
console.log(typeof true);

console.log(false)
console.log(typeof false);

console.log(undefined)
console.log(typeof undefined);

console.log(null)
console.log(typeof null);

六、变量

  变量可以用来“存储”字面量,并且变量中存储的字面量可以随意的修改。通过变量可以对字面量进行描述。我们可以使用 let 或 var 关键字声明变量。变量中并不存储任何值,而是存储值的内存地址。

// 声明变量,并赋值
let x = 80;
console.log(x);
console.log(typeof x);

x = 'hello';
console.log(x);
console.log(typeof x);

使用 let 关键字声明变量有块作用域,而使用 var 关键字声明的变量没有块作用域;

七、常量

  不可变的变量就是常量。在 JS 中用 const 关键字声明常量。常量只能赋值一次,重复赋值会报错。

// 在JS中使用const声明常量
const PI = 3.14;
console.log(PI);

八、标识符

  在 JS 中,所有可以由我们自主命名的内容,都可以认为是一个标识符,例如:变量名、函数名、类名等等。使用标识符时,需要遵循以下的命名规范:

  • 标识符只能含有字母、数字、下划线、$,且不能以数字开头
  • 标识符不能是 JS 中的关键字和保留字

  命名规范:

  • 不建议使用内置的函数名或类名作为变量名
  • 通常情况下,使用驼峰命名法,首字母小写,剩下每个单词开头大写
  • 类名使用大驼峰命名法,每个单词的首字母大写
  • 常用的字母全部大写多个单词之间使用下划线分隔
let bookName = 'HTML5权威指南';
let MAX_LENGTH = 200;

九、数据类型

  JS 中的数据类型由原始值和对象共同组成。JS 中一共有 7 种原始值,它们分别是:数值(Number)、大整数(Bigint)、字符串(String)、布尔值(boolean)、空值(Null)、未定义(undefined)、符号(Symbol);原始值在 JS 中是不可变类型,一旦创建就不能修改(数据本身不能改变,变量可以指向其它数据)。

9.1、数值

  在 JS 中所有整数和浮点数(小数)都是数值。在 JS 中数值并不是无限大的,当数值超过一定范围后会显示近似值。Infinity 是一个特殊的数值表示无穷。所以,在 JS 中进行一些精度比较高的运算时要十分注意。Nan 也是一个特殊的数值,表示非法的数值。使用 typeof 检查一个数值会返回 "number";

let a = 10;
console.log(a);
console.log(typeof a);

a = 3.14;
console.log(a);
console.log(typeof a);

a = 9999999999999911111;
console.log(a);

a = Infinity;
console.log(a);
console.log(typeof a);

a = NaN;
console.log(a);
console.log(typeof a);

9.2、大整数

  大整数用来表示一些比较大的整数。大整数使用 n 结尾,理论上,它可以表示数字的范围是无限大的(受内存大小影响)。使用 typeof 检查一个大整数时,会返回一个 "bigint";

let a = 99999999999999999999999999999999999999999999999n;
console.log(a);
console.log(typeof a);

9.3、字符串

  在 JS 中字符串需要使用引号引起来,引号可以是单引号,也可以是双引号,但是不要混的用。相同的引号间不能嵌套使用。使用 typeof 检查一个字符串时会返回 "string";

  在 JS 中,使用“\” 进行转义。

转义字符 描述
\b 退格
\r 回车符
\n 换行符
\t 水平制表符
\v 垂直制表符
\f 换页
\' 单引号
\" 双引号
\\ 反斜杠
\OOO 八进制整数,范围:000~777
\xHH 十六进制整数,范围:00~FF
\uhhhh 十六进制编码的 Unicode 字符

  在 JS 中使用 ` 来表示模板字符串,模板字符串中可以嵌入变量。

let a = 'hello';
console.log(a);
console.log(typeof a);

a = '子曰:"君子不重则不威,学则不固。"';
console.log(a);

a = 'hello\tworld';
console.log(a);

let name = '冰翎';
a = `你好,${name}`;
console.log(a);

9.4、布尔值

  布尔值主要用来逻辑判断。布尔值只有两个:true 和 false;使用 typeof 检查一个布尔值会返回 "boolean";

let bool = true;
console.log(bool);
console.log(typeof bool);

bool = false;
console.log(bool);
console.log(typeof bool)

9.5、空值

  空值用来表示空对象。空值只有一个: null;使用 typeof 检查空值会返回 "object";

let a = null;
console.log(a);
console.log(typeof a);

9.6、未定义

  当声明一个变量而没有赋值时,它的值就是 undefined,undefined 类型的值只有一个就是 undefined。使用 typeof 检查一个 undefined 类型的值时,会返回 "undefined"。

let a;
console.log(a);
console.log(typeof a);

9.7、符号

  符号用来创建一个唯一的标识。使用 typeof 检查符号时会返回 "symbol"。

let c = Symbol();
console.log(c);
console.log(typeof c);

十、类型转换

  类型转为是根据原有的数据创建出它所对应的要转换类型的数据,并不是直接将原有的类型直接转换为你要转换的类型;

10.1、类型转换—字符串

  • 调用 toString()方法 将其它类型转换为字符串
    • 由于 null、undefined 中没有 toString()方法,所以对这两个值调用 toString()方法 时会报错;
  • 调用 String() 函数将其它类型转为字符串
    • 对于拥有 toString()方法 的值调用 String()函数 时,实际上就是在调用 toString()方法;
    • 对于 null,则直接转换为 "null";
    • 对于 undefined,则直接转换为 "undefined";
// 调用toString()方法
let a = 10;
let b = a.toString();
console.log(a);
console.log(typeof a);
console.log(b);
console.log(typeof b);


let c = null;
console.log(c);
console.log(typeof c);

// 调用String()函数
let d = String(c);
console.log(d);
console.log(typeof d);

类型转为字符串是根据原有的数据创建出它对应的字符串值,并不是直接将原有的类型直接转换为字符串类型;

10.2、类型转换—数值

  • 使用 Number()函数,将其它类型转为为数值;
    • 如果字符串是一个合法的数字,会自动转换为对应的数据;
    • 如果字符串不是合法的数字,则转换为 NaN;
    • 如果字符串是 空串 或 纯空格 的字符串,则转换为 0;
    • 布尔值:true 转换为 1,false 转换为 0;
    • null 转换为 0;
    • undefined 转换为 NaN;
  • 使用 parseInt(),将一个字符串转换为一个整数;
    • 解析时,会自左向右读取一个字符串,直到读取字符串中所有的有效的整数;
  • 使用 parseFloat(),将一个字符串转换为浮点数;
// 合法数字的字符串 --> 对应的数值
let a = '123';
let b = Number(a);
console.log(a);
console.log(typeof a);
console.log(b);
console.log(typeof b);

// 不合法的数字的字符串 --> NaN
a = 'abc';
b = Number(a);
console.log(a);
console.log(b);

// '' --> 0
a = '';
b = Number(a);
console.log(a);
console.log(b);

// ' ' --> 0
a = ' ';
b = Number(a);
console.log(a);
console.log(b);

// true --> 1
a = true;
b = Number(a);
console.log(a);
console.log(b);

// false --> 0
a = false;
b = Number(a);
console.log(a);
console.log(b);

// null --> 0
a = null;
b = Number(a);
console.log(a);
console.log(b);

// undefined --> NaN
a = undefined;
b = Number(a);
console.log(a);
console.log(b);

a = "123.45px";
console.log(a);

b = parseInt(a);
console.log(a);
console.log(typeof a);
console.log(b);
console.log(typeof b);

b = parseFloat(a);
console.log(a);
console.log(typeof a);
console.log(b);
console.log(typeof b);

类型转为数值是根据原有的数据创建出它对应的数值,并不是直接将原有的类型直接转换为数值类型;

10.3、类型转换—布尔值

  • 使用 Boolean()函数,将其它类型转换为布尔值;
    • 非0的数字 和 Infinity,转换为 true;数字0 和 NaN,转换为 false;
    • 非空字符串,转换为 true;空串,转换为 false;
    • null 和 undefined 转换为 false;
// 非0数字 --> true
let a = -1;
b = Boolean(a);
console.log(a);
console.log(typeof a);
console.log(b);
console.log(typeof b);

// 0 --> false
a = 0;
b = Boolean(a);
console.log(a);
console.log(b);

// NaN --> false
a = NaN;
b = Boolean(a);
console.log(a);
console.log(b);


// Infinity --> true
a = Infinity;
b = Boolean(a);
console.log(a);
console.log(b);

// 非空字符串 --> true
a = 'abc';
b = Boolean(a);
console.log(a);
console.log(b);

// ' ' --> true
a = ' ';
b = Boolean(a);
console.log(a);
console.log(b);

// '' --> false
a = '';
b = Boolean(a);
console.log(a);
console.log(b);

// null --> false
a = null;
b = Boolean(a);
console.log(a);
console.log(b);

// undefine --> false
a = undefined;
b = Boolean(a);
console.log(a);
console.log(b);

类型转为布尔值是根据原有的数据创建出它对应的布尔值,并不是直接将原有的类型直接转换为布尔类型;

所有的表示空性的、没有的、错误的值都会转换为 false;

标签:01,console,log,JavaScript,基础知识,let,typeof,字符串,JS
From: https://www.cnblogs.com/nanoha/p/17033312.html

相关文章

  • [点分治记录] P4292 [WC2010]重建计划
    题目看到需要求的柿子首先想到分数规划。也就是二分答案,然后在check里将所有边权减去$mid$,检验是否有路经权值$\ge$0。现在问题转化成求路径长度在$[l,r]$范围内的权值......
  • JavaScript学习笔记-in运算符
    in运算符判断是否含有指定的属性  通过运算符可以检查一个对象中是否含有指定的属性,如果有返回true,没有则返回false。语法:  "属性名"in对象实例://创建一个对......
  • Linux基本操作_01
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx......
  • JavaScript-DOM
    DOM文档对象模型(DocumentObjectModel)提供系列的属性与方法,让我们在JS中操作页面元素。DOM由W3C定义,“一个与系统平台和变成语言无关的接口,程序和脚本可以通过这个接口动......
  • javaScript-DOM-获取元素,事件基础,操作元素
    javaScript-DOM目录javaScript-DOM1.DOM简介1.1什么是DOM1.2DOM树2.获取元素2.1如何获取页面元素2.2根据ID获取2.3根据标签名获取2.4通过HTML5新增的方法......
  • 随笔 有所思20230107
    过2023年这一年26岁。工作的问题未解决。找份硬件测试的工作,看看。测试的要求其实还挺高的。想要有个屋子,有个书桌,有个书房。租房的每日的房租支出,一日34元的房租,电费......
  • 2023.01.06 模拟赛小结
    2023.01.06模拟赛小结目录2023.01.06模拟赛小结更好的阅读体验戳此进入赛时思路T1CodecheckerT2CodeT3CodeT4Code正解T2CodeT3CodeT4CodeUPD更好的阅读体验戳此进入今......
  • Metagenome多样性分析&差异分析 2023.01.05-01.07
    多样性分析&差异分析##准备输入biom文件ln-s../01.taxon/out_S/S.biom##进行alpha多样性指数计算及绘制稀释曲线singularityexec../../software/MetaGenomeRscript.......
  • LG-P3779 [SDOI2017] 龙与地下城 题解
    LG-P3779[SDOI2017]龙与地下城Solution目录LG-P3779[SDOI2017]龙与地下城Solution更好的阅读体验戳此进入题面SolutionCodeUPD更好的阅读体验戳此进入题面给定一......
  • openssl 静态编译 win7+vs2010
    本文写于2013年1月,此时距离win7停止延长支持已经3年整了。1.所以我准备了虚拟机Win7,win7的iso下载地址:注册一个微软账号登录到 《登录到我的订阅》 visualstudio.m......