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知识库 -> js基础篇 -> 正文阅读

[JavaScript知识库]js基础篇

JavaScript语法

字面量 也叫直接量,就是程序中直接使用的,是变量后面的值
变量就是声明一个未知可变的量 变量声明符合unicode编码所有变量符合utf-8的编码都可以

标识符命名标准:

1.必须是字母,数字,_,¥开头
2.以驼峰命名规则
3. 首单词小写 后面的单词首字母大写 -*/

变量的作用域

在函数之外声明的变量,叫做全局变量,因为它可被当前文档中的任何其他代码所访问。
在函数内部声明的变量,叫做局部变量,因为它只能在当前函数的内部访问。

变量提升

JavaScript 变量的另一个不同寻常的地方是,你可以先使用变量稍后再声明变量而不会引发异常。这一概念称为变量提升;JavaScript
变量感觉上是被“提升”或移到了函数或语句的最前面。但是,提升后的变量将返回 undefined
值。因此在使用或引用某个变量之后进行声明和初始化操作,这个被提升的变量仍将返回 undefined 值。

  例子1
 
console.log(x === undefined); // true
var x = 3;


 例子2

//will return a value of undefined
var myvar = "my value";

(function() {
  console.log(myvar); // undefined
  var myvar = "local value";
})();
上面的例子,也可写作:

 例子1

var x;
console.log(x === undefined); // true
x = 3;
 
例子2

var myvar = "my value";
 
(function() {
  var myvar;
  console.log(myvar); // undefined
  myvar = "local value";
})();

由于存在变量提升,一个函数中所有的var语句应尽可能地放在接近函数顶部的地方。这个习惯将大大提升代码的清晰度。

常量(Constants)

你可以用关键字 const
创建一个只读的常量。常量标识符的命名规则和变量相同:必须以字母、下划线(_)或美元符号($)开头并可以包含有字母、数字或下划线。

const PI = 3.14;

常量不可以通过重新赋值改变其值,也不可以在代码运行时重新声明。它必须被初始化为某个值。 常量的作用域规则与 let
块级作用域变量相同。若省略const关键字,则该标识符将被视为变量。 在同一作用域中,不能使用与变量名或函数名相同的名字来命名常量。

例如:
// 这会造成错误
function f() {};
const f = 5;

// 这也会造成错误
function f() {
  const g = 5;
  var g;

  //语句
}

然而,对象属性被赋值为常量是不受保护的,所以下面的语句执行时不会产生错误。

const MY_OBJECT = {"key": "value"};
MY_OBJECT.key = "otherValue";

同样的,数组的被定义为常量也是不受保护的,所以下面的语句执行时也不会产生错误。

const MY_ARRAY = ['HTML','CSS'];
MY_ARRAY.push('JAVASCRIPT');
console.log(MY_ARRAY); //logs ['HTML','CSS','JAVASCRIPT'];

数据类型

最新的 ECMAScript 标准定义了8种数据类型:

5种基本数据类型:

1 布尔值(Boolean),有2个值分别是:true 和 false.
2 null , 一个表明 null 值的特殊关键字。JavaScript 是大小写敏感的,故 null 与 Null、NUL完全不同。
3 undefined ,和 null 一样是一个特殊的关键字,undefined 表示变量未定义时的属性。
4 数字(Number),整数或浮点数,例如: 42 或者3.14159。
5 字符串(String),字符串是一串表示文本值的字符序列,例如:“Howdy” 。

3种引用数据类型:

1 以及对象(Object)。
2 function 函数
3 array 数组

虽然这些数据类型相对来说比较少,但是通过他们你可以在程序中开发有用的功能。对象(Objects)
和函数(functions)是这门语言的另外两个基本元素。你可以把对象当作存放值的一个命名容器,然后将函数当作你的程序能够执行的步骤。

字面量 (Literals)

布尔字面量 (Boolean literals)
不要混淆作为布尔对象的真和假与布尔类型的原始值true和false。布尔对象是原始布尔数据类型的一个包装器。参见 布尔对象。

整数 (Integers)

整数可以用十进制(基数为10)、十六进制(基数为16)、八进制(基数为8)以及二进制(基数为2)表示。
十进制整数字面量由一串数字序列组成,且没有前缀0。 八进制的整数以 0(或0O、0o)开头,只能包括数字0-7。
十六进制整数以0x(或0X)开头,可以包含数字(0-9)和字母 a~f 或 A~F。 二进制整数以0b(或0B)开头,只能包含数字0和1。
严格模式下,八进制整数字面量必须以0o或0O开头,而不能以0开头。

整数字面量举例:

0, 117 and -345 (十进制, 基数为10)
015, 0001 and -0o77 (八进制, 基数为8) 0x1123,
0x00111 and -0xF1A7 (十六进制, 基数为16或"hex")
0b11, 0b0011 and -0b11 (二进制,基数为2)

浮点数字面量 (Floating-point literals)

浮点数字面值可以有以下的组成部分:

一个十进制整数,可以带正负号(即前缀“+”或“ - ”), 小数点(“.”),
小数部分(由一串十进制数表示),
指数部分 -指数部分以“e”或“E”开头,后面跟着一个整数,可以有正负号(即前缀“+”或“-”)。
浮点数字面量至少有一位数字,而且必须带小数点或者“e”(大写“E”也可)。

简言之,其语法是:
[(+|-)][digits][.digits][(E|e)[(+|-)]digits]
例如:
3.14      
-.2345789 // -0.23456789
-3.12e+12  // -3.12*1012
.1e-23    // 0.1*10-23=10-24=1e-24

对象字面量 (Object literals)

对象字面值是封闭在花括号对({})中的一个对象的零个或多个"属性名-值"对的(元素)列表。你不能在一条语句的开头就使用对象字面值,这将导致错误或产生超出预料的行为,
因为此时左花括号({)会被认为是一个语句块的起始符号。(译者:这 里需要对语句statement、块block等基本名词的解释)
以下是一个对象字面值的例子。对象car的第一个元素(译注:即一个属性/值对)定义了属性myCar;第二个元素,属性getCar,引用了一个函数(即CarTypes(“Honda”));第三个元素,属性special,使用了一个已有的变量(即Sales)。

var Sales = "Toyota";

function CarTypes(name) {
  return (name === "Honda") ?
    name :
    "Sorry, we don't sell " + name + "." ;
}

var car = { myCar: "Saturn", getCar: CarTypes("Honda"), special: Sales };

console.log(car.myCar);   // Saturn
console.log(car.getCar);  // Honda
console.log(car.special); // Toyota

更进一步的,你可以使用数字或字符串字面值作为属性的名字,或者在另一个字面值内嵌套上一个字面值。如下的示例中使用了这些可选项。

var car = { manyCars: {a: "Saab", "b": "Jeep"}, 7: "Mazda" };

console.log(car.manyCars.b); // Jeep
console.log(car[7]); // Mazda

对象属性名字可以是任意字符串,包括空串。如果对象属性名字不是合法的javascript标识符,它必须用"“包裹。属性的名字不合法,那么便不能用.访问属性值,而是通过类数组标记(”[]")访问和赋值。

var unusualPropertyNames = {
  "": "An empty string",
  "!": "Bang!"
}
console.log(unusualPropertyNames."");   // 语法错误: Unexpected string
console.log(unusualPropertyNames[""]);  // An empty string
console.log(unusualPropertyNames.!);    // 语法错误: Unexpected token !
console.log(unusualPropertyNames["!"]); // Bang!

字符串字面量 (String literals)

字符串字面量是由双引号(")对或单引号(’)括起来的零个或多个字符。字符串被限定在同种引号之间;也即,必须是成对单引号或成对双引号。下面的例子都是字符串字面值:

"foo"
'bar'
"1234"
"one line \n another line"
"John's cat"

运算符

运算符就是将一个数或多个数进行运算,并将结果返回 运算符分为:算术运算符 逻辑运算符 一元运算符 比较运算符 算术运算符:+ - * / % ++ –

逻辑及运算符:与&& 或|| 非!

&&必须俩个条件都满足才能成立
||满足其中一条条件即可
!直接否定

一元运算符:a++ ++a

比较运算符:> 大于运算符 < 小于运算符 <= 小于或等于运算符 >= 大于或等于运算符 ==相等运算符 === 严格相等运算符 ! != 不相等运算符

一个等于号是赋值 俩个等于号是判断值是否相等 三个等于号是判断值跟数据类型是否相等、 加号左右俩测如果有字符串就会进行拼串,若无字符串则转为number计算 加减乘除取模都转为number计算
条件运算符也叫三元运算符

赋值运算符

*= += -= = /= %=

if语句

if(条件){执行代码}
else{执行代码1}

if执行流程

只要满足第一个判断条件就执行对应的语句,下面无论是否满足都不执行
不满足第一个条件,接着判断下一个条件,如果下一个条件满足就停止判断,输出对应语句,如果下一个语句还不满足,就继续往下判断
所以如果要写判断条件把最大范围写在上面,小范围写在后面,或者分段写判断条件

循环语句

for循环
for循环的关键字	()里面是条件		var i=0;初始值		i<=10;循环条件		i++;自增
for循环句式/语法
for(1初始值;循环条件;循环方式){
执行语句
}

1 初始化变量可以放到小括号里面也可以放到循环外面
2 判断是否符合循环条件,如果是true那就继续往下执行 如果是false,直接不执行
3 执行循环体中的语句 4 执行循环方式(++/–等
5 判断是否符合循环条件,如果是true那就继续往下执行 如果是false,直接不执行 初始值只能执行一次

while循环

1 初始化变量:是在循环外面初始化
2 判断是否符合循环条件 如果返回值是true满足条件则执行代码
如果返回值是false不满足条件则跳出循环
3 执行的代码块
4 循环方式,如果放在循环之前,会先按照循环方式增加或减少,然后再输出,如果放到输出后会执行输出。进行下一个循环之前,按照循环方式增加或减少

while(true){}

当while后面的条件一直是true的时候就是一个死循环,为了避免问题,有需要情况下可以在循环体内进行判断,达到某个条件然后break(跳出循环)。
break跟continue可以处理死循环中执行停止或跳过

		do..while循环
     		 var  a=0;//声明变量
			do{//执行块
				alert(a);//输出
				a++;//循环方式
			}
			while(a<0)//循环条件                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

for,while和do while的区别

For的初始值,条件,循环方式可以写到小括号里面,其他不可以使用初始值变量

while和do while初始值都是写在外面的 条件写在小括号内,循环方式卸载循环体内。 do
while是先执行后判断,无论条件是否为true他都会执行一遍
for和while是先判断后执行,当条件为true时才会执行循环体中的代码,条件是false则不执行

switch条件分支语句

parseInt取整,将字符串转换成整型,返回由字符串转换得到的整数。 parseInt()取整是JavaScript当中的内置方法
相同点:俩者取整后都是number类型 不同点:输入数字字符串取整后得数字类型的值 输入得汉字类型的字符串取整后得NaN

parseFloat()去浮点 parseFloat()把小数点后面的0去掉

case是switch中匹配的每个案例,必须用break中断每一个语句(除了最后一个),如果不写break只要符合条件包括后面的全部显示,写break只输出符合条件的匹配项
default默认 在switch中放到最后一项,作为最后默认的选项

switch语句和if语句的区别

if语句可以对一些一切未知的条件进行判断 switch语句只可以对有一些已知条件的事情进行判断

强制类型转换

String()将非字符串类型转换为字符串
Number()将非数字类型的转换为数字类型
Boolean()将非布尔类型的转换为布尔类型

隐式类型转换

+-*/%
parseInt()将字符串类型的转换为整数数字

跳转语句

break是跳出循环 break默认终止的是离他最近的循环 如果俩个循环嵌套,想终止外侧循环给外侧循环起名字,在外侧循环上直接写名字
名字:for(){} 然后break 名字; 实现内外循环同时终止

基本数据类型都是一个具体的值 值与值之间没有任何联系
对象则不同,除了基本类型都是对象

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 09:31:55  更:2021-08-06 09:32:31 
 
开发: 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/17 10:48:22-

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