IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript基础知识——基本概念 -> 正文阅读

[JavaScript知识库]JavaScript基础知识——基本概念

一、语法

1.1、区分大小写

JS中的一切都区分大小写,包括(变量名、函数名、操作符等),例如:

test!== Test   // true

1.2、标识符

标识符,即变量、函数名、属性的名字,函数参数也算是变量的一种,因此函数参数也是标识符,标识符具有以下规则:

1、首字符必须是字母、下划线()、美元符号
2、其他字符可以是字母、下划线(
)、美元符号($)、数字

按照惯例,标识符一般采用驼峰命名方式,即首字母小写,剩余单词开头字母大写。例如:peopleAgepeopleName

1.3、注释

JavaScript注释方法:

// 单行注释

/*
*多行注释
*/

HTML注释方法:

<!-- HTML注释 -->

1.4、严格模式

启用方式:在需要执行严格模式条件的代码前加上"use strict";,例如:

// 执行getAge方法会报错,因为在严格模式下age没有事先声明
function getAge(){
	"use strict";
	age = 14;  
	console.log(age);
}
// getName方法会正常进行,在"use strict"后的代码符合严格模式的标准
function getName(){
	"use strict";
	let name = '';
	name = 'web';  
	console.log(name);
}

二、变量

ES5ES6
varvar、let、const

在ES6之前声明变量的方式只有var,它具有以下特性:
1、属于松散类型 ,可以用来声明所有类型数据,
2、使用var声明的变量只会在其作用域内有效,离开作用域就会被销毁。具有以下情况:
3、在非局部作用域内使用var声明语句声明的变量会作用于全局作用域
4、var具有变量提升,即会将声明语句提升到该作用域头部,但未赋值,因此在声明前调用该变量并不会报错,而是返回一个undefined
A、局部变量声明

function _test(){
 	var testStr = 'hello'
}
_test();
console.log(testStr); // 会报错,函数具有自己的作用域,testStr在函数内声明,离开函数作用域后将会被销毁,所以外部访问会报错

B、代码块内声明

{
	var testStr = 'hello'
}
console.log(testStr);   // 输出hello,在es6之前js代码是没有块级作用域的概念的,所以该代码块内的声明其实仍然是属于全局作用域内的

C、先用后声明

console.log(testStr); //并不会报错,因为var声明变量存在变量提升,只会输出undefined
{
	var testStr = 'hello'
}
// 上面的声明实际是以下顺序,变量提升会将变量提前声明,但不会赋值,函数声明的时候也具有该特性
var testStr;
console.log(testStr);
{
	testStr = 'hello'
}

四、数据类型

数据类型又分为基本数据类型和引用数据类型,基本数据类型包括undefined、null、number、string、boolean。引用数据类型一般是指Object,但在ES6发布后又定义了几种数据类型:symbol、map、set。
对于简单类型数据,js提供了一个typeof方法用于检测变量的数据类型,具体如下:

const num = 0;
const str = "hello";
const str2 = undefined;
const obj = null;
const aa = true;
const object = {};
const array = []
const fn = function(){}
console.log(typeof num); //number
console.log(typeof str); //string
console.log(typeof str2); //undefined
console.log(typeof obj); //object
console.log(typeof aa); //boolean
console.log(typeof object); //object
console.log(typeof array); //object
console.log(typeof fn); //function

这里需要注意3个地方:

  1. null是一个空对象,因此typeof的检测结果为object
  2. function的检测结果会返回function,并不是一个object
  3. Array类型虽然是数组,但是在JavaScript中我们认为他的类型是对象类型。

五、操作符

5.1 一元操作符

只能操作一个值的操作符叫一元操作符;

1、递增和递减

使用方法:a++,++a,a–,--a
它表达的意思就是对a进行加一的操作,但需要注意的是++和–的位置:

  1. ++或–在前表示先加或减再用
  2. ++或–在后表示先用再加或减
let a = 2;
console.log(a++) // 先用再加,输出2,a最终会更新为3;
console.log(++a) //先加后用,输出4,a更新为4;
console.log(a--) //先用再减,输出4,a更新为3
console.log(--a) //先减再用,输出2,a更新为2

++和–也可以运用到其他类型值上,但须遵循以下规范:

1、应用于一个包含有效数字字符的字符串时,先将其转换为数值,再执行++/–,该变量类型由字符串类型变为数值类型
2、应用于一个不包含数字字符的字符串时,将变量的值设置为NaN,该变量类型由字符串类型变为数值变量;
3、应用于布尔值false时,先将其转换为0,再执行++/–,该变量的类型由布尔值转换为数值;
4、应用于布尔值true时,先将其转换为1,再执行++/–,该变量的类型由布尔值转换为数值;
5、应用于undefined时,数值运算会返回NaN
5、在应用于对象时,会调用对象的valueOf()方法取得一个可用值,然后再利用前面的规则,如果结果是NaN,则再调用toString()方法后再应用前面的规则,该变量类型将由对象变为数值

2、一元加和一元减运算符

在对非数值应用一元操作加减符时,该操作Number()转型函数一样对这个值进行转换;用法如下:

let a = 0;
a = +a;
a = -a;

需要注意的是上面的语法并没有进行加减运算,实际上只是进行了一个将变量的类型转换为数值类型的过程。

5.2 布尔操作符

1、逻辑非(!)

当对一个变量使用逻辑非操作后,无论变量是什么类型都会先将其变为布尔类型,再进行取反操作

1、操作对象是一个对象,则返回false
2、操作对象是一个非空字符串,返回false
3、操作对象是一个空字符串,返回true
4、操作对象是0;返回true
5、操作对象是非0数值,返回false
6、操作对象是null,返回true
7、操作对象是undefined,返回true
8、操作对象是NaN,返回true

逻辑非操作一次会将其转为布尔值再取反,那么连续使用两次其实就取到了当前对象的布尔类型值,相当于做了Boolean()转化;

2、逻辑与(&&)

它具有两个操作对象,使用方法是将两个操作对象分别放在&&两边,例如:

a && b;

他的返回结果可以简单记忆为只有同时为真才返回true,并返回后面的那个操作对象;其他情况皆是返回false,并返回第一次最先碰见的布尔类型为false的那个操作对象,并且遇见false将立即停止执行逻辑与的后续代码。

3、逻辑或(||)

逻辑或和逻辑与的用法一直,都是两个操作对象将||包含住。
逻辑或可以理解为遇见操作对象为真则立即返回当前操作对象,后续的逻辑或比较不再执行

六、语句

很简单,没啥可记录的

七、函数

这里主要了解一下函数的传参原理(按值传递)这个可以参考我之前的文章看看以及JavaScript中没有函数重载,当然你也可以借助一些方法去实现这个。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:38:44  更:2021-07-28 07:39:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 18:42:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码