菜单

皇家前端:javascript学习笔记(一)基础知识

2019年7月25日 - 皇家前端

基本概念

javascript是一门解释型的语言,浏览器充当解释器。
js执行引擎并不是一行一行的执行,而是一段一段的分析执行。 

延期脚本

HTML4.0.第11中学定义了defer属性,它的用处是标识脚本在施行时不会影响页面的布局。约等于说,脚本会延迟到一切页面都深入分析完毕后再进行。因而,在<script>成分中装置defer属性,也就是告诉浏览器立刻下载,但延迟实施。在XHTML文档中,要把defer属性设置为defer=“defer"

异步脚本

html5为<script>定义了async属性。整个属性与defer属性类似,都用来转移管理脚本的作为。一样,与defer类似,async只适用于表面脚本文件,并告诉浏览器立刻下载文件。但与defer差别的是,标志为async的剧本并不保障遵照钦点他们的先后顺序推行。
点名async的目标是不让页面等待脚本文件下载和施行,进而异步加载页面别的内容。由此,提议异步脚本不要再加载时期操作DOM

区分轻重缓急写

ECMASCript中的一切(包含变量,函数名和操作符)都分别轻重缓急写。

1. JScript 的变量

变量在首先次用到时就安装于内部存款和储蓄器中,便于后来在本子中引用。使用变量在此以前先实行宣示。能够利用
var 关键字来实行变量注明。

var count, amount, level; // 用单个 var 关键字声明的多个声明。

变量命名

变量名富含全局变量,局地变量,类变量,函数参数等等,他们都属于这一类。

变量命名皆以连串前缀+有意义的单词组成,用驼峰式命名法增添变量和函式的可读性。比方:sUserName,nCount。

前缀标准:
各种局地变量都急需有一个品类前缀,依据项目能够分为:

s:表示字符串。例如:sName,sHtml;
n:表示数字。例如:nPage,nTotal;
b:表示逻辑。例如:bChecked,bHasLogin;
a:表示数组。例如:aList,aGroup;
r:表示正则表达式。例如:rDomain,rEmail;
f:表示函数。例如:fGetHtml,fInit;
o:表示以上未涉及到的其他对象,例如:oButton,oDate;
g:表示全局变量,例如:gUserName,gLoginTime;

JScript 是一种有别于轻重缓急写的语言。创立官方的变量名称应遵从如下准则:

在意第一个字符不能够是数字。
后边能够跟自便字母或数字以及下划线,但不能够是空格
变量名称绝不可是 保留字。

javascript是一种弱类型语言,JavaScript
会忽略多余的空格。您能够向脚本加多空格,来巩固其可读性。

varjavascript的保留字,注脚接下去是变量表达,变量名是用户自定义的标识符,变量之间用逗号分开。

要是注解了叁个变量但从不对其赋值,该变量存在,其值为Jscript 值
undefined。

强制类型转变

在 Jscript 中,能够对差别类型的值施行运算,不必思量 JScript
解释器发生拾贰分。相反,JScript
解释器自动将数据类型之一改动(强制转变)为另一种数据类型,然后施行运算。举例:

运算 结果

数值与字符串相加  将数值强制转换为字符串。
布尔值与字符串相加  将布尔值强制转换为字符串。
数值与布尔值相加  将布尔值强制转换为数值。

要想显式地将字符串转变为整数,使用 parseInt
方法。要想显式地将字符串转变为数字,使用 parseFloat 方法。

JavaScript
变量的生存期:当您在函数内证明了贰个变量后,就不得不在该函数中做客该变量。当退出该函数后,那个变量会被收回。这种变量称为本地变量。您能够在差异的函数中选拔名称一致的地头变量,那是因为独有申明过变量的函数能够辨识其中的每一个变量。
倘让你在函数之外证明了三个变量,则页面上的持有函数都得以访谈该变量。这几个变量的生存期从注脚它们之后初叶,在页面关闭时截止。

js变量思维导图

皇家前端 1

2.js的数据类型

jscript
有三种->首要数据类型、三种->复合数据类型和三种->特殊数据类型。

根本(基本)数据类型

字符串数值布尔

复合(援引)数据类型

对象数组

分外数据类型

 Null`Undefined`

字符串数据类型:字符串数据类型用来表示 JScript
中的文本。在js中,尽管双引号(””)和单引号(”)均可代表字符串,并且它们差相当少从不任何分裂。但只行使双引号(“”)来表示字符串被认为是最棒的。

二个字符串值是排在一齐的一串零或零上述的 Unicode
字符(字母、数字和标点符号)。

什么是Unicode?

Unicode为各样字符都提供了独一的数值,不管是哪些平台、什么顺序或怎样语言。开采unicode是为了给管理世界上存在的具有字符提供联合的编码。

数值数据类型

大家需求掌握有些,JScript 内部将具有的数值表示为浮点值,因此,在 Jscript
中整数和浮点值没大相径庭。

Boolean数据类型

布尔(逻辑)只好有五个值:true 或 false。

js数组和指标

详细情形看我那篇文章->javascript学习总计— —数组和对象部分

Null 数据类型:能够透过给叁个变量赋 null 值来排除变量的内容。

Jscript中 typeof 运算符将报告 null 值为 Object 类型,而非类型
null

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
 <title></title>
 <script type="text/javascript"> 
   alert(typeof null);
 </script>
</head>
<body>
</body>
</html>

null用来代表尚无存在的对象,常用来表示函数盘算重临二个海市蜃楼的靶子。

Undefined 数据类型:

正如景况将赶回 undefined 值:

对象属性不存在,声明了变量但从未赋值。

null和undefined的区别

alert(typeof undefined); //output "undefined" 
alert(typeof null); //output "object" 
alert(null == undefined); //output "true" 

ECMAScript感觉undefined是从null派生出来的,所以把它们定义为相等的。

alert(null === undefined); //output "false" 
alert(typeof null == typeof undefined); //output "false" 

null与undefined的类型是不雷同的,所以输出”false”。而===代表相对等于,在此地null
=== undefined输出false

皇家前端 2

其余,这里介绍一种比较主要的数据类型——引用数据类型

引用数据类型

javascript援引数据类型是保存在堆内部存款和储蓄器中的对象,JavaScript不允许直接访谈堆内部存款和储蓄器空间中的地方和操作堆内部存款和储蓄器空间,只能通过操作对象在栈内部存款和储蓄器中的援引地址。所以援引类型的数据,在栈内部存款和储蓄器中保存的其实是指标在堆内部存款和储蓄器中的援引地址。通过这一个引用地址能够高速查找到保存在堆内部存款和储蓄器中的靶子。

上边大家来演示那几个引用数据类型赋值进度
皇家前端 3

道理当然是那样的,给obj2加多name属性,实际上是给堆内部存储器中的对象增加了name属性,obj2和obj1在栈内部存款和储蓄器中保存的只是堆内部存款和储蓄器对象的援用地址,即便也是拷贝了一份,但针对的对象却是同贰个。故而改造obj2唤起了obj1的改造。

基本类型值指的是这几个保存在栈内部存款和储蓄器中的简要数据段,即这种值完全保存在内部存款和储蓄器中的三个地方。

而引用类型值则是指这几个保存在堆内部存款和储蓄器中的靶子,即变量中保存的实际只是叁个指南针,那个指针指向内存中的另多少个职位,该职位保存对象。

轻易易行,堆内部存款和储蓄器贮存援引值,栈内部存款和储蓄器寄放固定类型值。
皇家前端 4

ECMAScript 中,变量能够存在两种等级次序的值,即原始值和援用值。
原始值存款和储蓄在栈(stack)中的简单数据段,约等于说,它们的值直接存款和储蓄在变量访谈的地点。引用值存储在堆(heap)中的对象,相当于说,存款和储蓄在变量处的值是一个指南针(point),指向存款和储蓄对象的内部存储器处。

<script type="text/javascript”>
var box = new Object(); //创建一个引用类型
var box = "lee";  //基本类型值是字符串
box.age = 23;  //基本类型值添加属性很怪异,因为只有对象才可以添加属性。
alert(box.age); //不是引用类型,无法输出;
</script>

3.JScript 的运算符

先行级:指运算符的演算顺序,通俗的说就是先计算哪部分。
结合性:同一优先级运算符的总结顺序,通俗的说便是从哪个方向算起,是左到右依然右到左。

数据类型调换

String() 转变为字符串类型
Number() 调换为数字类型
Boolean() 转变为布尔类型

parseInt:将字符串转变为整数。从字符串的上马开头解析,在第七个非整数的职分停止分析,并再次回到前边读到全体的整数。假若字符串不是以大背头开始的,将回来NaN。如:parseInt(“150
hi”)再次回到的值是:150,parseInt(“hi”)重临的值是:NaN。
parseFloat:将字符串调换为浮点数。
从字符串的上马开端深入分析,在首先个非整数的地方甘休深入分析,并赶回前边读到全数的整数。固然字符串不是以平头早先的,将回到NaN。如:parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。

eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。

皇家前端 5

4.js流程序调节制

对于js流程序调控制语句,这里只讲多少个比较难懂的。别的不赘述。等下附上一张合计导图。
1.for…in
语句对应于一个对象的各种,或一个数组的各种成分,推行一个或多少个语句。

for (variable in [object | array])
statements 

参数:

variable:必选项。一个变量,它能够是 object 的任一属性或 array
的任一元素。
object, array:可选项。要在其上遍历的对象或数组。
statement:可选项。相对于 object 的各样属性或 array
的各类元素,都要被推行的三个或多个语句。可以是复合语句。

就算如此条件决定语句(如if语句)只在实施多条语句的景况下才供给采用代码块(左花括号”{“初叶,右花括号”}”结尾),但最好施行是一味使用代码块。

if(args)
  alert(args);//容易出错

if(args){
  alert(args);//推荐使用
}

皇家前端 6
js流程序调整制语句思维导图

5.js函数

函数是由事件驱动的可能当它被调用时施行的可重复使用的代码块。

Jscript 协理三种函数:一类是语言内部的函数,另一类是和煦创设的。
JavaScript
函数允许尚未参数(但含有参数的小括号不可能大致),也得以向函数字传送递参数供函数使用。

越来越多关于函数的学识请访谈笔者的另一篇文章:javascript学习大总括(四)function函数部分

目的的构成

方法——函数:过程、动态的
属性——变量:状态、静态的

末段,再黏附一张前辈总括的图谋导图:
皇家前端 7

你或许感兴趣的稿子:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图