JavaScript高级程序设计—语言基础

目录

1、语法

2、关键字和保留字

3、变量

4、数据类型

5、确定变量的数据类型

6、转型函数

7、模板字符串

8、每个Object实例都有如下的属性和方法

9、操作符

10、语句


1、语法

区分大小写

标识符:变量、函数、属性或函数参数的名称

  • 第一个字母必须是一个字母、下划线(_)或美元符号($)
  • 剩下的其他字符可以是字母、下划线、美元符号或数字
  • 使用驼峰大小写形式:即第一个单词的首字母小写,后面每个单词的首字母大写

严格模式:"use strict"

2、关键字和保留字

不能用作标识符和属性名

3、变量

ECMAScript的变量是松散类型,可以用于保存任何类型的数据

var(es5)、let(es6)和const(es6)的区别:

  • var 存在变量提升,可以重复声明
  • let和const 不存在变量提升(未声明前无法使用)
  • let和const 不能重复声明
  • let和const 有着严格的作用域名
  • let 不可以重复声明,但是可以重复赋值
  • const声明常量,一旦声明不可改变,但是声明对象时可以给对象添加属性
4、数据类型
  • 简单数据类型:Number、String、Null、Undefined、Boolean、Symbol
  • 复杂数据类型:Object
5、确定变量的数据类型

typeof操作符

注:逻辑上讲,null值表示一个空对象指针,这也是给typeof传一个null会返回object的原因

6、转型函数
  • Boolean()
  • Number()
  • parseInt()、parseFloat()、isNaN()
  • toString()                //  null和undefined没有该方法,仍返回null和undefined
7、模板字符串
  • 可以保留换行字符,跨行定义字符串
  • 可以定义HTML模板
  • 会保持反引号内部的空格
  • 字符串插值通过在${}中使用一个JavaScript表达式实现
let value1 = '小逼崽子';
let value2 = '我是你爹';
let value3 = '就问你服不服';

// 传统字符串拼接
let add1 = value1 + ',' + value2 + ',' + value3 + '?';
console.log(add1);  // 小逼崽子,我是你爹,就问你服不服?

// 模板字符串
let add2 = `${value1},${value2},${value3}?`;
console.log(add2);  // 小逼崽子,我是你爹,就问你服不服?
8、每个Object实例都有如下的属性和方法
  • constructor:用于创建当前对象的函数
  • hasOwnProperty(propertyName):用于判断当前对象实例(不是原型)上是否存在给定的属性
  • isPrototypeof(object):用于判断当前对象是否为另一个对象的原型
  • propertyIsEnumerable(propertyName):用于判断给定的属性是否可以使用
  • toLocalString():返回对象的字符串表示
  • toString():返回对象的字符串表示
  • valueOf():返回对象对应的字符串、数值或布尔值表示。通常与toString()返回的结果相同
9、操作符

一元操作符:只操作一个值的操作符叫一元操作符

  1. 递增递减操作符:++、--
    • 前置递增或递减:变量的值会在语句被求值之前改变
    • 后置递增或递减:变量的值会在语句被求值之后改变
  2. 一元加和减:+、-
    • 一元加由一个+表示:放在变量前面,对数值没有任何影响;如果将一元加应用到非数值,则会执行与使用Number()转型函数一样的类型转换。
    • 一元减由一个-表示:放在变量前面,主要用于把数值变成负值;同样也可以用于数据类型转换

位操作符:

按位非:~、按位与:&、按位或:|、按位异或:^、左移:<<、有符号右移:>>、无符号右移:>>>

布尔操作符:

  1. 逻辑非:!
    1. 始终返回布尔值,无论应用到的是什么数据类型;
    2. 首先将操作数转换为布尔值,然后再对其取反
  2. 逻辑与:&&
    1. 短路操作符;
    2. 可以用于任何类型的操作数,不限于布尔值。
    3. 如果有操作数不是布尔值,则逻辑与并不一定会返回布尔值
  3. 逻辑或:||
    1. 短路操作符;
    2. 与逻辑与类似,如果有一个操作数不是布尔值则不一定返回布尔值

乘性操作符:

  • 乘法操作符:*
    • 用于计算两个数值的乘积,如果有不是数值的操作数,则先在后台用Number()将其转换成数值
  • 除法操作符:/
    • 用于计算第一个操作数除以第二个操作数
  • 取模操作数:%
    • 用于计算两个操作符的常规除法,返回余数

指数操作符:** (等同于Math.pow())

指数赋值操作符:**=

加性的操作符:

  • 加法操作符:+
    • 用于求两个数的和;如果存在字符串,则都转换成字符串并用+拼接
  • 减法操作符:-
    • 同加法操作符一样使用

关系操作符:<、>、<=、>=

相等操作符:

  • 等于(==)和不等于(!=)
  • 全等(===)和不全等(!==)

注意:null == undefined 是true,但是null === undefined 是false。

条件操作符(三目运算符):a = 5? true : false;

赋值操作符:

  • 简单赋值:=
  • 乘后赋值:*=
  • 除后赋值:/=
  • 取模后赋值:%=
  • 加后赋值:+=
  • 减后赋值:-=
  • 左移后赋值:<<=
  • 右移后赋值:>>=
  • 无符号右移后赋值:>>>=

逗号操作符:用来在一条语句中执行多个操作

10、语句
  • if语句
  • do-while语句:循环体内的代码至少执行1次
  • while语句:循环体内的代码有可能不执行
  • for-in语句:用于枚举对象中的非符号键属性
  • for-of语句:用于遍历可迭代对象的元素
  • 标签语句
  • break和continue语句:break语句用于立即退出循环,强制执行循环后的下一句语句;continue语句也是立即退出循环,但再次从循环顶部开始执行。
  • switch语句
  • return语句:函数体内只要碰到return语句,函数会立即停止执行并退出,return后面的代码不会执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值