JavaScript篇章

Tips:基础不牢,地动山摇

章节一:

引入:为什么要用框架:之所以是框架,是为了给你提供一个编程的便利。

五大主流浏览器

前端接触最多的东西:浏览器,浏览器具有自己的内核
5大主流浏览器 内核(JS引擎+渲染引擎)
IE -> trident
chrome-> webkit、blink
safari -> webkit
firefox -> gecko
opera -> presto

浏览器历史和JS诞生

  1. 1990年,有一个人叫 蒂姆 博纳斯 李 ——>这个人呢 是做超文本分享资讯的——>他呢 开发了一个叫 World Wide Web 这样的一个浏览器——>他将这个浏览器 移植到c语言上 改名为 libwww后来发展成了nexus,这是一个真正意义上的浏览器(允许别人浏览他人编写的网站)
  2. 1993年,在美国的一所伊利诺大学——>有一个组织叫 NCSA——>组织这个组织里有一个成员叫(马克 安德森)这个人开发了一个叫MOSIAC浏览器,这个浏览器可以显示图片,是一个真正意义上图形化的浏览器
  3. 1994,马克 安德森和吉姆 克拉克 (这个人是美国硅图公司(SGI)的)他们俩成立了一个公司叫MOSIAC Communication Corporation,在公司的发展途中,公司黄了,原因是MOSIAC有商标权,是归伊利诺大学的,在马克 安德森走之后,把商标权卖给了spy glass这个公司,后来安德森将公司改名为Netscape Communication Corporation,也就是网景公司,在MOSIAC基础上开发的Netscape navigator——网景导航者
  4. 在1996年发生了三件事
    (1)微软收购了spy glass并且开发了IE internet exploror 同时发布了IE3,它的诞生出现了第一个script脚本,JSscript1.0 ->IE3+Jscript
    (2)网景公司的Brendan eich这个人,在netscape navigator 浏览器的基础上开发出了一个脚本语言,叫 livescript
    (3)在这一年 JAVA火起来了,网景公司的 liveScript 不温不火,JAVA所有权SUN公司,网景公司的 liveScript与SUN公司 商量合作和宣传产品,将livescript改名为javaScript
  5. 2001年,IE6XP诞生,JS引擎诞生
  6. 2003年,mozilla公司的firefox诞生
  7. 2008年,google基于webkit+blink+gears(离线浏览网页功能)=>chrome浏览器

progressive web app渐进式APP => chrome->v8引擎 (js引擎)—这时就有一个叫node.js:它是一个基于chromeV8引擎的JS运行环境

v8引擎的优点:
1.直接翻译机器码
2.独立于浏览器运行

  1. 2009年,甲骨文oracle收购了SUN公司,JS的所有权归甲骨文

章节二:

先说说 ECMA:European Computer Meaufactures Association 全名:欧洲计算机制造联合会 ——日内瓦(瑞士),这个组织是评估开发认可电信,计算机标准的一个组织
ECMA-262 是脚本语言的规范

再说说编程语言,编程语言又叫做高级语言,就是人能理解,计算机不理解,需要翻译:编程语言分为编译型和解释型
编译型:源码通过编译器,变成可执行文件
解释型:源码通过解释器,解释一行执行一行,不需要根据不同的系统,平台进行移植

紧接着看一下脚本语言:脚本语言一定要有脚本引擎,通过脚本引擎的解释器才能正常运行
脚本语言有前端脚本语言与后端脚本语言
前端:JAVAScript 客户端脚本(浏览器脚本)
后端:PHP脚本,服务器脚本

介绍一下多线程与单线程
多线程:可以同时做多件事
单线程:只能同时做一件事,JS引擎可以模拟多线程,有个东西叫轮转时间片:意思是短时间之内轮流执行多个任务的片段
轮转时间片的执行步骤:1.假设有任务一,任务二
2.先切分任务一,任务二
3.随机排列这些任务片段,组成队列
4.按照队列顺序将任务片段送进JS线程
5.JS线程执行一个又一个的任务片段

再说一下动态语言与静态语言
动态语言->脚本语言->解释型语言->弱类型语言(弱化数据类型)->根据值判断数据类型
静态语言->编译型语言->强类型语言->根据数据类型判断值

章节三:

JavaScript组成
1.ECMAScript 语法+变量、关键字、保留字、值、原始类型、引用类型、运算、对象、继承、函数
2.DOM document object Model W3C规范
3.BOM browser object Model 无规范
首先说一下变量:变量:存储数据的一个容器
例如:var a = 3 分为两个部分:
1.声明一个a
2. 将3赋值给a

‘=’ 是赋值的意思
优先级:括号优先级>运算优先级>赋值优先级,运算符的左右两边要有空格

null:空值 会用于初始化组件,函数,销毁函数,占位
引用值:object / array / function / date / RegExp

重点:堆:值的地址存在栈内存
栈:先进后出,数据永久保存,不可改

浏览器报错类型:1.SyntaxError 语法错误 一行都不执行
2.ReferenceRrror 引用错误 中断执行

// 1.demo:用计算机语言叙述内容
	var a = 1;
		b = 2;
		d = 3;
	var c = (a + b) * d
描述:首先 1.声明变量c
	     2.变量a的值和变量b的值相加,与变量d的值相乘得到结果
	     3.将该结果赋值给变量c

+数字运算 字符串拼接
任何数据类型的值 + 字符串 都是字符串

了解++ –

demo1:
var a  = 1;
console.log(a++);	//1   ++在后面,就先打印a本身,然后进行运算
console.log(a);	//2
demo2:
var a  = 5,
    b;
b = a-- + --a   //b = --a + a--  --a先运算
				// --a:4 a:4 -> b:8,->a--  a:3
console.log(b,a);	//8,3
demo3:
var a  = 5,
    b;
b = --a + --a;//--a:4先运算 ->--a:3->b:7,a:3
console.log(b,a);//7,3
demo4:
var a  = 5,
    b;
b = --a + a++;//--a:4先运算a++先打印后运算a++:4 ->b:8,a:5
console.log(b,a);//8,5

比较运算符
number ——>string //number和string比较,string转换为number类型
number——>number
string——>string//字符串相比较,比较对应的ASCII码,(字符相对应的十进制代码)多个字符的,从左到右一次对比,直到比较出ASCII码的大小为止
== 是不看数据类型的
===是需要看数据类型是否相等的
NaN与包括自己在内的任何东西都不相等

补充:这是我在写代码的时候,遇到的问题:
return语句就是用于指定函数返回的值。return语句只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误!

小例子:

var i = 1;
for(;i;){
console.log(i);
i++;
if(i === 11){
return
}
}

语句 if
if:它的条件具有互斥性

if(){}else if(){}
//if(){} 和多个 if(){}else if(){}有什么区别:
性能上:多个if要一直判断,找到符合的才停止判断

语句 switch

switch(变量){
	case 值:
	语句
	break;  //中断循环
	default:
	语句
}

逻辑运算
&&:俩者为真才为真,如果有一个为假,则返回当前值 2 && 3----3 0 && 3----0
||:只要有一个为真就返回真,如果俩个都为假,就返回最后一个 3 || 2 —3 0 || 1----1
!:取反
为假的值:0,null,undefined,‘’,false,NaN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值