疏导

学习指标:

节数知识点要求
第一节(js的前世今生)js简介理解
第二节(js的语法结构)页面引入js的几种形式理解
js输入的几种形式理解
js的语法规定理解
第三节(Javascript名词解释)数字字面量把握
字符串字面量把握
常量了解
第四节(Javascript变量命名规定(重点))申明变量把握
变量晋升把握
变量的命名规定理解
第五节(Javascript数据类型(重点))根本数据类型把握
第六节(Javascript运算符(重点))逻辑运算符把握

什么是语言?

什么是计算机语言?

机器语言,汇编语言,高级语言。

少儿编程语言

计算机存储单位

计算机数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。

1B(Byte字节)=8bit,

1KB (Kilobyte 千字节)=1024B,

1MB (Mega byte 兆字节 简称“兆”)=1024KB,

1GB (Giga byte 吉字节 又称“千兆”)=1024MB,

1TB (Tera byte 万亿字节 太字节)=1024GB,其中1024=2^10 ( 2 的10次方),

1PB(Peta byte 千万亿字节 拍字节)=1024TB,

1EB(Exa byte 百亿亿字节 艾字节)=1024PB,

1ZB (Zetta byte 十万亿亿字节 泽字节)= 1024 EB,

1YB (Yotta byte 一亿亿亿字节 尧字节)= 1024 ZB,

1BB (Bronto byte 一千亿亿亿字节)= 1024 YB,

Javascript简介

js的前世今生



备注94通过微信

JavaScript一种直译式脚本语言,是一种动静类型、弱类型、基于原型的语言,最早是在HTML网页上应用,用来给HTML网页减少动静性能。

动静:在运行时确定数据类型。变量应用之前不须要类型申明,通常变量的类型是被赋值的那个值的类型。

弱类:计算时能够不同类型之间对使用者通明地隐式转换,即便类型不正确,也能通过隐式转换来失去正确的类型。

原型:新对象继承对象(作为模版),将本身的属性共享给新对象,模版对象称为原型。这样新对象实例化后岂但能够享有本人创立时和运行时定义的属性,而且能够享有原型对象的属性。

脚本语言:不须要编译器编译。

在1995年时,由Netscape公司的布兰登·艾奇(Brendan Eich,1961年~),JavaScript的发明人,在网景导航者浏览器(Navigator)上首次设计实现而成。

因为网景公司心愿能在动态HTML页面上增加一些动态效果,于是叫Brendan Eich这哥们在两周之内设计出了JavaScript语言。你没看错,这哥们只用了10天工夫。

为什么起名叫JavaScript?起因是过后Java语言十分红火,所以网景公司心愿借Java的名气来推广,但事实上JavaScript除了语法上有点像Java,其余局部基本上没啥关系。

Netscape在最后将其脚本语言命名为LiveScript,起初Netscape在与Sun单干之后将其改名为JavaScript。

Javascript的三个次要组成部分是:ECMAScript(外围),DOM(文档对象模型),BOM(浏览器对象模型)。

和Java区别

js的特点

1、是一种解释性脚本语言(代码不进行预编译)。

2、次要用来向HTML(规范通用标记语言下的一个利用)页面增加交互行为。

3、能够间接嵌入HTML页面,但写成独自的js文件有利于构造和行为的拆散。

4、跨平台个性,在绝大多数浏览器的反对下,能够在多种平台下运行(如Windows、Linux、Mac、Android、iOS等

5、它是单线程编程语言

js在网页中的利用

表单的验证,放大镜,增加购物车等

ECMAScript 和 JavaScript 的关系

1996 年 11 月,JavaScript 的创造者Netscape公司,决定将 JavaScript 提交给标准化组织 ECMA,心愿这种语言可能成为国际标准。

因为网景开发了JavaScript,一年后微软模拟JavaScript开发了JScript,为了让JavaScript成为寰球规范,几个公司联结ECMA(European Computer Manufacturers Association)组织定制了JavaScript语言的规范,被称为ECMAScript规范

  所以简略说来就是,ECMAScript是一种语言规范,而JavaScript是网景公司对ECMAScript规范的一种实现。那为什么不间接把JavaScript定为规范呢?因为JavaScript是网景的注册商标。不过大多数时候,咱们还是用JavaScript这个词。如果你遇到ECMAScript这个词,简略把它替换为JavaScript就行了。

  因为JavaScript的规范——ECMAScript在一直倒退,最新版ECMAScript 6规范(简称ES6,有时也被称为ES2015)曾经在2015年6月正式公布了,所以,讲到JavaScript的版本,实际上就是说它实现了ECMAScript规范的哪个版本。

Javascript倒退历史

1995年12月4日 Netscape公司与Sun公司联结公布了JavaScript语言。

1996年03月 Navigator 2.0浏览器正式内置了JavaScript脚本语言。

1997年07月 ECMAScript 1.0公布。

1998年06月 ECMAScript 2.0版公布。

1999年12月 ECMAScript 3.0版公布,成为JavaScript的通行规范,失去了广泛支持。

2007年10月 ECMAScript 4.0版草案公布

2009年12月 ECMAScript 5.0版正式公布

2015年06月 ECMAScript 6正式公布

各个次要浏览器内核和引擎

一个残缺的浏览器蕴含浏览器内核和浏览器的外壳(shell)。浏览器外围——内核分成两局部:渲染引擎和js引擎。

浏览器内核次要指的是浏览器的渲染引擎,2013 年以前,代表有 Trident(IE),Gecko(firefox),Webkit(Safari chrome 等)以及 Presto(opera)。2013 年当前,谷歌开始研发 blink 引擎,chrome 28 当前开始应用,而 opera 则放弃了自主研发的 Presto 引擎,投入谷歌怀抱,和谷歌一起研发 blink 引擎,国内各种 chrome系的浏览器(360、UC、QQ、2345 等等)也纷纷放弃 webkit,投入 blink 的怀抱。

2015年微软推出本人新的浏览器,原名叫斯巴达,后改名edge,应用edge引擎

edge浏览器依然应用Chakra引擎

1、IE浏览器内核:Trident内核,也是俗称的IE内核;

2、Chrome浏览器内核:统称为Chromium内核或Chrome内核,以前是Webkit内核,当初是Blink内核;

3、Firefox浏览器内核:Gecko内核,俗称Firefox内核;

4、Safari浏览器内核:Webkit内核;

5、Opera浏览器内核:最后是本人的Presto内核,起初是Webkit,当初是Blink内核;

6、360浏览器、猎豹浏览器内核:IE+Chrome双内核;

7、搜狗、漫游、QQ浏览器内核:Trident(兼容模式)+Webkit(高速模式);

8、百度浏览器、世界之窗内核:IE内核;

9、2345浏览器内核:以前是IE内核,当初也是IE+Chrome双内核;

罕用的IDE介绍

IDE:集成开发环境(Integrated Development Environment )

Webstorm,visual studio code,sublime,atom,hbuilder,editplus,nodepad等

js的语法结构

页面引入js的几种形式

第一种形式:外部形式

第二种形式:内部构造

第三种形式:行内形式

js输入的几种形式

1、应用 window.alert() 弹出正告框。

2、应用 document.write() 办法将内容写到 HTML 文档中。

3、应用 innerHTML 写入到 HTML 元素。

4、应用 console.log() 写入到浏览器的控制台。

js的语法规定

1、分号是语句完结的标记,分号不是必须的,咱们不倡议这样做,严格来说,语句要加上分号。

2、 js会疏忽多个空格和换行。

3、字符集

utf-8:对立国内编码,兼容各个国家的语言
gb2312/gbk:简体中文编码

big5:繁体中文编码

4、变量辨别大小写

5、正文

回顾一下html正文:

<!--正文内容-->

回顾一下css的正文:

/*内容*/

js的正文语句

单行正文://内容

多行正文:/*内容*/

问:为什么要加正文?

答:为了不便他人也是为了不便本人。

Javascript名词解释

在编程语言中,个别固定值称为字面量,如 3.14。给变量赋值时,等号左边都能够认为是字面量。英语叫做literals,有些书上叫做间接量。

数字字面量

25,98.23
var num = 92;

字符串字面量

‘123’,“Hello”

[12,2,3]

常量

什么是常量?

常量:就是其值不能扭转的。

怎么定义一个常量?

const HOST = “localhost”;

[外链图片转存失败,源站可能有防盗链机制,倡议将图片保留下来间接上传(img-E0D0aDmK-1608010648257)(020101JS初识.assets/image-20200808101326346.png)]

[外链图片转存失败,源站可能有防盗链机制,倡议将图片保留下来间接上传(img-IKQtV2pk-1608010648260)(020101JS初识.assets/image-20200808101352692.png)]

const也是块级作用域

const申明的常量必须初识化,而let申明的变量不必

const实际上保障的,并不是变量的值不得改变,而是变量指向的那个内存地址所保留的数据不得改变。对于简略类型的数据(数值、字符串、布尔值),值就保留在变量指向的那个内存地址,因而等同于常量。但对于复合类型的数据(次要是对象和数组),变量指向的内存地址,保留的只是一个指向理论数据的指针,const只能保障这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就齐全不能管制了

Javascript变量命名规定(重点)

申明变量

变量是干什么的,是存储数据的,那存储什么品种数据呢?

申明变量应用关键字:var(variable)

你给它赋什么类型的值,那么这个变量就是什么数据类型。

内存中堆区和栈区

显式申明与隐式申明区别

JS中变量申明分显式申明和隐式申明。

var name = 'muzidigbig';//显式申明

name = 'muzidigbig';//隐式申明(为全局对象(window)的一个属性)

JavaScript 严格模式(use strict)

变量晋升

变量肯定要先申明后应用,如果先应用后申明,js的外部机制天然使变量晋升。

let 和var 的区别

var: variable,它是可变的。

let: 块作用域。

变量名的命名规定

变量的命名:变量是由字母、数字、下划线、$ 组成,但第一个字符必须是字母或者是下划线、$结尾。

$不倡议应用,它可能会和其余的框架语法抵触,或者是函数的名字抵触

1、JavaScript语言的标识符对大小写敏感,所以a和A是两个不同的标识符。

2、首字母能够是任意字母以及美元符号和下划线。残余能够是任意字母,美元符号,下划线和数字

3、不能应用javascript中的关键字(保留字)来命名变量

4、中文也能够申明变量,不倡议应用它。

变量的命名形式

第一种命名:帕斯卡命名(大驼峰式命名

每个单词的首字符大写

例如:UserName。

第二种命名小驼峰式命名

首个单词的首字母小写其余前面单词的首字母大写

例如:

例如:userName

第三种命名匈牙利式命名

数据类型+单词(变量名)

Integer+age

var Iage = 25;

String+address

var Saddress = “西安”;

Javascript数据类型(重点)

在此根本的数据类型的根底上又减少了一个根本数据类型:Symbol,Symbol 是 ES6 引入了一种新的原始数据类型,示意举世无双的值。

打印变量的数据类型:typeof

请留神:

NaN 的数据类型是 number

数组(Array)的数据类型是 object

日期(Date)的数据类型为 object

null 的数据类型是 object

未定义变量的数据类型为 undefined

根本数据类型

数字类型(number)

c 语言中:

int(整数),float(单精度浮点型),double(双精度浮点型),char(字符)

string(字符串)。

二进制(binary):0b101010101

八进制:0o2535

十六进制:0x69852

进制转换:

toString():十进制转换其余的进制

parseInt():其余的进制转换十进制

最大值:MAX_VALUE

最小值:MIN_VALUE

浮点数不能比拟

NaN:Not a Number:不是一个数值

一些非凡状况(除数为0,最大值变动)

布尔类型(boolean)

true(真),false(假),都是小写的。

TRUE,FALSE,True,False:这些都不正确。

字符串类型(string)

字符串:加单引号或者是双引号

字符串连贯:应用的是+

模板字符串:

undefined

typeof undefined

null

typeof null

null == undefined

null和undefined的区别

1、类型不相等

2、强制类型转换值不一样

var re1 = Number(undefined);//NaNvar re2 = Number(null);//0

3、比拟

null == undefined;//truenull === undefined;//false

援用类型(object)

Javascript运算符(重点)

算术运算符

+,-,,/,%(求余数),++,--,*(求幂数-es7新增)