Javascript学习

Javascript学习第一节

越早告别天真,越早碾碎那些不切实际的想法,才能越快踏上成功之路。天道酬勤并非只是说说而已,那些每天比你多花几倍精力研究知识的人,如果不能比你获得更多,那么这个世界的运行规律就得改写了。
学习JavaScript语言,需要多敲代码+多思考+多练习,学习JavaScript切勿好高骛远。正所谓贪多嚼不烂。

一.JavaScript入门
1.JavaScript组成部分及特点
(1)JavaScript组成部分
标准化后的JavaScript包含了3个组成部分:

**ECMAScript:**脚本语言的核心内容,定义了脚本语言的基本语法和基本对象。现在每种浏览器都有对ECMAScript标准的实现。
**DOM(Document Object Model):**文档对象模型,它是HTML和XML文档的应用程序编程接口。浏览器中的DOM把整个网页规划成由节点层级构成的树状结构的文档。用DOM API可以轻松地删除、添加和替换文档树结构中的节点。
**BOM(Browser Object Model):**浏览器对象模型,描述了对浏览器窗口进行访问和操作的方法和接口。
(2)JavaScript与Java的区别
<1>JavaScript由浏览器解释执行,Java程序则是编译执行。
<2>JavaScript是一种基于对象的脚本语言,其中提供了丰富的内置对象供开发人员直接使用;Java则是一种真正的面向对象的编程语言,不管开发的程序简单与否,都必须设计对象。
<3>JavaScript是弱类型语言,声明变量时不需要声明变量的类型,甚至不声明变量而直接使用变量;Java是强类型语言,变量在使用前必须先声明且必须声明变量的类型。
*(3)JavaScript语法特点及编辑工具
区分大小写 ;不同于Java每条语句结尾必须加上分号,JavaScript语句结尾处的分号是可选的,即可加也可不加。
目前主流JavaScript编辑软件有:Dreamweaver、Visual Studio Code、Sublime Text、Atom和WebStorm。
2.JavaScript代码的调试方法
开发人员在开发程序时,经常会碰到程序异常现象,要快速定位并解决程序异常,要求开发人员掌握一些常用的代码调试方法和调试工具。在JS代码中,最常用的调试方法是alert()方法和console.log()方法。
(1)使用alert()方法调试脚本代码
alert()基本语法:
方式一:alert(msg);
方式二:window.alert(msg);
alert()方法是window对象的方法,在调用时可以通过window对象来调用,也可以直接调用。
(2)使用console.log()方法调试脚本代码
console.log()的使用语法:
console.log(msg);
3.基本语法
(1)注释

单行注释以“//”开始,后面跟着的内容就是注释;多行注释以“/
”开始,以“
/”结束,它们之间的内容就是注释。
(2)标识符、关键字和保留字
在JavaScript中,标识符命名规范和Java以及其他许多语言的命名规范相同,主要规范如下。
<1>标识符第一个字符必须是字母、下划线(_)或美元符号($),其后的字符可以是字母、数字或下划线、美元符号。
<2>自定义的标识符不能和JavaScript中的关键字及保留字同名,但可以包含关键字或保留字。关键字及保留字介绍请参见本节后面的内容介绍。
<3>标识符不能包含空格。
<4>标识符不能包含“+”“-”“@”“#”等特殊字符。
<5>由多个单词组成的复合标识符命名主要有两种方式:一是使用下划线连接各个单词,每个单词全部小写,例如:dept_name。二是使用驼峰式,其中又分大驼峰和小驼峰。大驼峰的格式是每个单词的首字母大写,其余字母小写,例如:DeptName;小驼峰的格式是第一个单词全部小写,第二单词开始的每个单词首字母大写,其余字母小写,例如:deptName。
(3)直接量(literal,有些书也叫字面量)
指的是在JavaScript代码中直接给出的数据。
直接量可分为以下几种类型:
<1>整型直接量:只包含整数部分,可使用十进制、十六进制和八进制表示,例如:123。
<2>浮点型直接量:由整数部分加小数部分表示,例如:1.23。
<3>布尔直接量:只有true和false两种取值。
<4>字符型直接量:使用单引号或双引号括起来的一个或几个字符或以反斜杠开头的称为转义字符的特殊字符,例如:“Hi”、‘女’、\n(换行转义字符)。
<5>空值:使用null表示,表示没有对象,用于定义空的或不存在的引用。
(4)变量
为了提高程序的可读性和可维护性,在程序中应尽量使用有意义的名字来命名变量。
使用var、let和const声明变量。
<1>使用var声明变量
使用var可声明全局或函数级别作用域的变量,声明语法:
方式一:var 变量名;
方式二:var 变量名1,变量名2,…,变量名n;
方式三:var 变量名1 = 值1,变量名2 = 值2,…,变量名n = 值n;
<2>使用let声明变量
let声明变量格式:
方式一:let 变量名;
方式二:let 变量名1,变量名2,…,变量名n;
方式三:let 变量名1 = 值1,变量名2 = 值2,…,变量名n = 值n;
<3>用const声明变量
声明格式:
const 变量名 = 值;
<4>3 种变量声明方式的区别
1)变量初始化要求不同:var和let声明变量时可以不需要初始化,没有初始化的变量的值为“undefined”,在代码的运行过程中变量的值可以被修改。const声明变量时必须初始化,并且在代码的整个运行过程中不能修改初始化值,否则运行时会报错。
2)变量提升的支持不同:var声明支持变量提升,而const和let声明不支持变量提升。
3)对块级作用域的支持不同:var声明的变量,不支持块级作用域,let和const声明的变量支持块级作用域。凡是使用一对花括号“{}”括起来的代码都称为一个代码块。所谓块级作用域,指的是有效范围为某个代码块,离开了这个代码块,变量将失效。
4)重复声明:在同一个作用域中,var可以重复声明同一个变量,let和const不能重复声明同一个变量。
5)let和const存在暂时性死区:当块中存在let/const声明语句时,let/const声明的变量就绑定到这个当前块作用域,不会受外部变量的影响,也不会影响外部变量。
<5>变量的内存分配
JavaScript内存分配和其他许多语言一样,是根据变量的数据类型来分配内存的。
JavaScript支持的数据类型可分为两大类:基本数据类型和复杂数据类型。其中基本数据类型包含了数字(number)类型、字符串(string)类型、布尔(boolean)类型、未定义(undefined)类型、空(null)类型;复杂数据类型包含了对象(object)类型,在JavaScript中数组、函数都属于对象类型。
除了基本数据类型以外的数据类型全都是对象类型。
<6>变量的作用域
变量的作用域主要分为全局作用域、局部作用域和块级作用域这3种。相应作用域的变量分别称为全局变量、局部变量和块级变量。全局变量声明在所有函数之外;局部变量是在函数体内声明的变量或者是函数的命名参数;块级变量是在块中声明的变量,只在块中有效。
(5)数据类型
<1>JavaScript支持的数据类型可分为基本数据类型和引用数据类型(引用数据类型也称为复杂类型)。其中基本数据类型包含了数字(number)类型、字符串(string)类型、布尔(boolean)类型、未定义(undefined)类型、空(null)类型;引用数据类型就是对象类型。
Javascript学习<2>使用typeof运算符检测数据类型
typeof是一个运算符,用来检测给定的变量或值的数据类型,返回的值为操作数的数据类型名称,是一个字符串结果。
使用格式:
typeof 操作数
说明:操作数可以是变量,也可以是具体的某个值(即字面量),返回值有以下几种。(1)undefined:表示操作数为未定义。
(2)boolean:表示操作数为布尔值。
(5)string:表示操作数为字符串。
(6)number:表示操作数为数字。
(7)object:表示操作数为对象或数组。
(8)function:表示操作数为函数。注:函数也是一种对象,但typeof将函数视为特殊情况,所以检测函数时,返回的结果为function,而不是object。
<3> 数字类型
数字(number)类型在JavaScript源代码中包含两种书写格式的数字:整型数字和浮点型数字。整型数字就是只包含整数部分的数字,其又分为十进制、十六进制和八进制三类整数。浮点型数字则包含整数部分、小数点和小数部分的数字。
<4>字符串类型
字符串直接量:在JavaScript程序中的字符串直接量,是由单引号或双引号括起来的字符序列。由单引号定界的字符串中可以含有双引号,由双引号定界的字符串中也可以含有单引号。
<5>函数类型
在JavaScript中函数类型名为“function”。所谓函数,其实就是一段具有一定功能的有名字或匿名的程序。函数定义格式如下:
Function[函数名]([参数列表]){
函数体;
[return [表达式;]]
}
定义函数时必须以function关键字开始,后跟着自定义的函数名。函数名可省略,省略函数名时,函数称为匿名函数。函数名后面的小括号不能省略,参数列表可选。函数体就是一系列实现函数功能的代码。return语句返回某个值,可选。
<6>对象类型
所谓对象,指既可以保存一组不同类型的数据,又可以包含处理这些数据的函数的复杂数据类型。对象中保存的数据称为对象属性,处理这些数据的函数称为对象的方法。在JavaScript中,对象类型名为“object”。window、document、数组等都是对象,使用typeof对它们操作时,得到的结果为:object。
对象可进行的操作包括自定义属性和自定义方法以及访问属性、调用方法。
<7>null和undefined类型
null是JavaScript的关键字,表示没有对象,用于定义空的或不存在的引用。null参与算术运算时其值会自动转换为0。
undefined类型表示一个已声明的变量没有赋值。undefined典型用法如下
(1)变量被声明了,但没有赋值时,就等于undefined。
(2)调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象的属性没有赋值时,属性的值为undefined。
(4)数组定义后没有给元素赋值时,数组各个元素等于undefined。
(5)函数没有返回值时,默认返回undefinedundefined参与算术运算时转换为NaN(Not a Number,即不是一个数字,属于数字类型)。
<8> 数据类型的转换
数据类型的转换有:隐式类型转换和强制类型转换(也叫显式类型转换)两种方式。
隐式类型转换的情况主要有以下几种:
1)如果表达式中同时存在字符串类型和数字类型的操作数,而运算符使用加号+,此时JavaScript会自动将数字转换成字符串。
2)如果表达式运算符为-、
、/、%中的任意一个,此时JavaScript会自动将字符串转换成数字,对无法转换为数字的则转换为NaN。
3)运算符为++或–时,JavaScript会自动将字符串转换成数字,对无法转换为数字的则转换为NaN。
4)运算符为>或<时,当两个操作数一个为字符串,一个为数字时,JavaScript会自动将字符串转换成数字。
5)!运算符将其操作数转换为布尔值并取反。
6)运算符为==时,当表达式同时包含字符串和数字时,JavaScript会自动将字符串转换成数字。
强制类型转换主要是通过调用全局函数Number()、parseInt()和parseFloat()来实现:
1)使用Number()函数将参数转换为一个数字。
格式:
Number ( value )
2)使用parseInt()函数将参数转换为一个整数。
格式:
parseInt ( stringNum, [ radix ] )
3)使用parseFloat()函数将参数转换为一个浮点数。
格式:parseFloat( stringNum )
(6)在网页中嵌入JavaScript代码
1)使用HTML标签的事件属性,可以直接在标签内添加脚本,以响应元素的事件,这种事件也称为行内事件。使用HTML标签的事件属性添加JS脚本这种方法,现在已不建议使用了。
2)使用script标签插入脚本代码
基本语法:

标签可以出现在HTML文件的任何位置。type属性规定脚本的MIME类型,通常取“text/javascript”,现在使用时,也会经常省略这个属性。

3)使用script标签链接外部JS文件
将JS代码放在单独的一个以.js为扩展名的文件里,然后在需要该文件的网页中使用script标签引用该JS文件。扩展名为.js的文件称为脚本文件。
基本语法:

src属性用来指定外部脚本文件的URL,是一个必设属性。

相关文章:

  • 2022-01-11
  • 2021-07-15
  • 2021-05-29
  • 2021-04-02
  • 2022-02-05
猜你喜欢
  • 2021-12-15
  • 2021-12-04
  • 2021-10-17
  • 2021-09-30
相关资源
相似解决方案