JavaScript ECMA基础

这篇博客详细介绍了JavaScript的基础知识,包括注释、输入输出语句、变量、数据类型、运算符、流程控制、循环、数组、函数、作用域、预解析、对象、内置对象等。讲解了数据类型中的Number、String、Boolean、Undefined、Null,以及如何检测和转换数据类型。还涵盖了运算符的使用,如算术、比较和逻辑运算符,以及流程控制语句如if、switch、for和while。此外,还讨论了数组的操作和函数的声明与调用,以及对象的创建和遍历。最后提到了JavaScript中的Math和Date内置对象以及字符串对象的相关操作。
摘要由CSDN通过智能技术生成

注释


在 JavaScript 中有2种注释:

  1. 单行注释:// 默认快捷键 ctrl + /

  2. 多行注释:/* 默认快捷键 shift + alt + a */


输入输出语句


方法 说明 归属
alert(msg) 浏览器弹出警示框 浏览器
console.log(msg) 浏览器控制台打印输出信息 浏览器
prompt(info) 浏览器弹出输入框,用户可以输入 浏览器

变量


变量是程序在内存中开辟的一块用于存放数据的空间。

声明变量

在 JavaScript 中变量可以使用var进行声明,也可以省略var直接进行使用。

// 单行
var test;
var test01 = 1;
test02 = 1;
var test03 = 'i am str';
test04 = 'i am str'// 多行
var test = 18,
	test02 = 'i am str';

注意:

  • 仅声明变量,但是未给变量赋值,控制台中输出为undefined.

  • 未声明变量,在控制台中调用输出将报错。

变量的命名规范

  • 由字母(A-Za-z)、数字(0-9)、下划线()、美元符号($)组成,如:usrAge,num01,_name

  • 严格区分大小写。var app;和var App;是两个变量

  • 不能以数字开头。18age是错误的

  • 不能是关键字、保留字。例如:var、for、while

  • 变量名必须有意义。MMD BBD nl → age

  • 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。myFirstName

  • 推荐翻译网站:有道 爱词霸


数据类型


JavaScript 中的数据类型类似于 Python,都是一种弱类型。他们在声明变量时,不用声明数据类型。而是在程序运行的过程中,数据类型会被自动确认。

在运行代码时,变量的数据类型是由 JS引擎根据 = 右边变量值的数据类型来判断的,运行完毕后,变量就确定了数据类型。

数据类型的分类:

  1. 简单数据类型:Number,String,Boolean,Undefined,Null
  2. 复杂数据类型:Object

简单数据类型

简单数据类型 说明 默认值
Number 数字型,包含整型和浮点型 0
Boolean 布尔值型,true / false false
String 字符串型 字符串需要带引号 “”
Undefined 声明了变量但是没有负值此时变量就为Undefined undefined
Null 声明变量为空值 null

关于数字型

  1. 数字型直接赋值是使用的十进制
  2. 在需要的数字前加 0 是使用八进制 var a = 010
  3. 在需要的数字前加 0x 是表示十六进制 var a = 0x10

在控制台中输出的都是十进制

  1. 数字型中的最大值 Number.MAX_VALUE
  2. 数字型中的最小值 Number.MIN_VALUE
  3. 数字型的无穷大 Number.MAX_VALUE * 2 比任何值都大
  4. 数字型的无穷小 Number.MIN_VALUE * 2 比任何值都小
  5. NaN,Not a Number,代表一个非数值,当的不出我们想要的结果并且不是个数字时用其表示,如‘test’ - 100

isNaN()

这个方法用来判断非数字,如果是数字返回 false 否则返回 true

字符串型

字符串类型使用单引号和双引号都可以,但是推荐用单引号

当使用到引号嵌套时,要使用不同的引号,外部是单引号内部就用双引号,外部是双引号内部就用单引号

转义字符

转义符 说明
\n 换行
\\ 斜杠\
\’ 单引号
\” 双引号
\t tab 缩进
\b 空格,b 是 blank 的意思

字符段长度 length

var a = 'i am str';
console.log(a.length);

字符串拼接

console.log('沙漠'+'骆驼');
// out: 沙漠骆驼
console.log('永远'+18);
// out: 永远18
console.log('永远'+18+'岁');
// out: 永远18岁

总结:数值相加,字符相连

布尔型

var flag = true,
    flag1 = false;
console.log(flag + 1); // true 参与运算当 1 来看
console.log(flag1 + 1); // false 参与运算当 0 来看

undefined 和 null

var str;
console.log(str); // 输出 undefined
var v1 = undefined;
console.log(v1 + 'test'); // 输出 undefinedtest
console.log(v1 + 1); // 输出 NaN

var space = null;
console.log(space + 'test'); // 输出 nulltest
console.log(space + 1); // 输出 1 ,因为什么都没有+1还是1

数据类型检测 typeof

var num = 10;
var str = 'brokyz';
console.log(typeof num);
console.log(typeof str)

数据类型的转换

转换为字符串

方式 说明 案例
toString() 转字符串 var num = 1; alert(num.toString());
String() 强制转换 转字符串 var num = 1; alter(String(num))
加号拼接字符串 和字符串拼接的结果都是字符串 var num = 1; alter(num + ‘’)

转换为数字型

方式 说明 案例
parseInt(string) 函数 将string类型转换为整数数值型 parseInt(‘78’)
parseFloat(string) 函数 将string类型转换为浮点数数值型 parseFloat(‘3,14’)
Number() 强制转换函数 将string类型转换为数值型 Number(‘12’)
js 隐式转换 (- * /) 利用算数运算隐式转换 (注意不能用+) ‘12’ - 0

转换为布尔

console.log(Boolean('')); // false
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false

// 只有上面五种情况为 false 其余情况都为 true

console.log(Boolean('123')); // true
console.log(Boolean('你好')); //true

运算符


算数运算符

运算符 描述 实例
+
-
*
/
% 取余 5 % 3 = 2; 3 % 5 = 3;

浮点数运算时会有问题

console.log(0.1 + 0.2); // 0.30000000000000000004

由于浮点数运算时会转换成二进制,用二进制进行算术运算,这时就会存在一些误差

所以要尽量避免小数参与运算

前置递增运算符

++num 类似于 num = num + 1 但是更加简单

前置的运算顺序是,先自加后返回值

后置递增运算符

num++ 类似于 num = num + 1 但是更加简单

前置自增和后置自增如果单独使用,效果一样

但是后置自增的运算顺序是。先返回原值,后自加

var num = 10;
console.log(++num + 10) // 这里返回21,运算后num变为11

var num = 10;
console.log(num++ + 10) // 这里返回20,运算后num变为11

比较运算符

比较运算返回的是布尔类型,一般的符号一般默认会转换数据类型进行比较

运算符 说明 案例 结果
< 小于
> 大于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
=== !== 全等 要求值和数据类型都一致

逻辑运算符

逻辑运算符 说明 案例
&& “逻辑与”,简称“与” and
|| ”逻辑或“,简称”或“ or
! ”逻辑非“,简称“非” not

短路运算(逻辑中断)

原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;

  • 逻辑与

​ 如果第一个表达式的值为真,则返回表达式2

​ 如果第一个表达式的值为假,则返回表达式1

console.log(123 && 456); // 结果456
console.log(0 && 456); // 结果0
console.log(0 && 1 + 2 && 456 * 7) //结果0 ,在0之后的停止执行
  • 逻辑或

    如果第一个表达式的值为真,则返回表达式1

    如果第一个表达式的值为假,则返回表达式2

console.log(123 && 456); // 结果123
console.log(123 && 1 + 2 && 456 * 7); // 结果123, 后面的不运行,已经中断了
console.log(0 && 1 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值