问题:什么是web前端javascript
前端:指界面,计算机(PC)软件桌面的界面; 计算机端的浏览器界面; 移动端的软件(app)界面; 移动端的浏览器界面。css
Html+css+JavaScript 使用网页技术(Html,css,JavaScript)开发界面;html
Html,css和JavaScript的关系:
前端
HTML:架构师,网页内容;java
CSS:修饰师:装饰内容。程序员
JavaScript:魔术师,内容网页进行交互。web
关于学习方法:编程没有捷径;只能多写,多记,多理解。express
1. navigator:网景公司,在1995年推出。Livescript很简单的。完成网页中基本的交互能。编程
2. 1995 java很火。Write one,run anywhere!!,写一遍代码,在各个平台运行。后端
3 .网景公司和sun公司合做,推出了javascript。
4. 网景公司,招人,Brendan Eich开发Scheme;开发javascript,像极了java,要比java简单。怄气加赶工,10天开发出了javascript。推出javascript1.0。
5. 1996年时,将javascript1.1提交给了ECMA组织,做为js标准。a)提供标准:ECMAScript标准,javascript是实现了ECMAScript标准的语言。
6. 微软:1996没有浏览器,收购了一家公司,产品:IE,也实现了ECMAScript标准jscript。
7.为期8年的浏览器大战开始。谷歌,火狐,欧鹏,IE safari。
注意:ECMAscript和JavaScript有什么区别?
ECMAscript:语言标准,简称ES,JavaScript是实现了ECMAscript的编程语言。
做为前端开发,熟悉四大内核是很是有必要的。四大内核的解析不一样使网页渲染效果更具多样化。下面总结一下各经常使用浏览器所使用的内核。
一、IE浏览器内核:Trident内核,也是俗称的IE内核;
二、Chrome浏览器内核:统称为Chromium内核或Chrome内核,之前是Webkit内核,如今是Blink内核;
三、Firefox浏览器内核:Gecko内核,俗称Firefox内核;
四、Safari浏览器内核:Webkit内核;
五、Opera浏览器内核:最初是本身的Presto内核,后来是Webkit,如今是Blink内核;
六、360浏览器、猎豹浏览器内核:IE+Chrome双内核;
七、搜狗、遨游、QQ浏览器内核:Trident(兼容模式)+Webkit(高速模式);
八、百度浏览器、世界之窗内核:IE内核;
九、2345浏览器内核:之前是IE内核,如今也是IE+Chrome双内核;
前五个属于主流浏览器。
一些国内的浏览器他们的内核:
搜狗浏览器:兼容模式(IE:Trident)和高速模式(webkit)
傲游浏览器:兼容模式(IE:Trident)和高速模式(webkit)
QQ浏览器:普通模式(IE:Trident)和极速模式(webkit)
360极速浏览器:基于谷歌(Chromium)和IE内核 360安全
JavaScript是一门脚本语言。弱数据类型,基于对象,基于事件驱动的语言。
Javascript是解释执行的。 解释器是浏览器。
(1) 脚本语言。JavaScript是一种解释型的脚本语言,C、C++、java等语言先编译后执行,而JavaScript是在程序的运行过程当中逐行进行解释。
(2)基于对象。JavaScript是一种基于对象的脚本语言,它不只能够建立对象,也能使用现有的对象。
(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未作出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不须要通过Web服务器就能够对用户的输入作出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操做JavaScript均可直接对这些事件给出相应的响应。
(5)跨平台性。JavaScript脚本语言不依赖于操做系统,仅须要浏览器的支持。所以一个JavaScript脚本在编写后能够带到任意机器上使用,前提上机器上的浏览器支持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。
网站后端开发:Node.js让程序员能够用js自由地写后端了。
(2) Web app:HTML5提供了不少API支持,能够实现原生应用拥有的大部分功能,可是性能有待提升。像Firefox OS就是基于web app的移动操做系统。
(3) 混合式应用开发:把原生应用的一部分用前端技术实现,使原生应用更加灵活。不少应用都会这样作。PhoneGap,React Native之类平台的出现容许程序员使用js来进行移动应用开发。
(1) JavaScript的历史
(2) ECMAScript标准
(3) 基本语法
(4) 语句
JavaScript 程序的执行单位为行(line),也就是一行一行地执行。通常状况下,每一行就是一个语句。语句(statement)是为了完成某种任务而进行的操做,好比下面就是一行赋值语句。
var x=1+2;复制代码
这条语句先用var
命令,声明了变量x
,而后将1 + 2
的运算结果赋值给变量a
1 + 2
叫作表达式(expression),指一个为了获得返回值的计算式。语句和表达式的区别在于,前者主要为了进行某种操做,通常状况下不须要返回值;后者则是为了获得返回值,必定会返回一个值。凡是 JavaScript 语言中预期为值的地方,均可以使用表达式。好比,赋值语句的等号右边,预期是一个值,所以能够放置各类表达式。
语句以分号结尾,一个分号就表示一个语句结束。多个语句能够写在一行内。
var x=1+2; var y=1+3;复制代码
分号前面能够没有任何内容,JavaScript引擎将其视为空语句。
;;;复制代码
上面的代码就表示3个空语句。
表达式不须要分号结尾。一旦在表达式后面添加分号,则 JavaScript 引擎就将表达式视为语句,这样会产生一些没有任何意义的语句。
1+2;
"abc";复制代码
上面两行语句只是单纯地产生一个值,并无任何实际的意义。
语句分为条件语句和 循环语句,
条件语句:JavaScript 提供if
结构和switch
结构,完成条件判断,即只有知足预设的条件,才会执行相应的语句。
if 语句,if else 语句,
switch 语句,
多个if...else
连在一块儿使用的时候,能够转为使用更方便的switch
结构。
switch (fruit) {
case "banana":
// ...
break;
case "apple":
// ...
break;
default:
// ...
}
复制代码
上面代码根据变量fruit
的值,选择执行相应的case
。若是全部case
都不符合,则执行最后的default
部分。须要注意的是,每一个case
代码块内部的break
语句不能少,不然会接下去执行下一个case
代码块,而不是跳出switch
结构。
三元运算符,
JavaScript 还有一个三元运算符(即该运算符须要三个运算子)?:
,也能够用于逻辑判断。
(条件) ? 表达式1 : 表达式2
复制代码
上面代码中,若是“条件”为true
,则返回“表达式1”的值,不然返回“表达式2”的值。
var even = (n % 2 === 0) ? true : false;
复制代码
上面代码中,若是n
能够被2整除,则even
等于true
,不然等于false
。它等同于下面的形式。
var even;
if (n % 2 === 0) {
even = true;
} else {
even = false;
}
复制代码
这个三元运算符能够被视为if...else...
的简写形式,所以能够用于多种场合。
var myVar;
console.log(
myVar ?
'myVar has a value' :
'myVar does not have a value'
)
// myVar does not have a value
复制代码
上面代码利用三元运算符,输出相应的提示。若是过变量有 value 值,输出?前面的值,若是没有值,输出后面的值。
var msg = '数字' + n + '是' + (n % 2 === 0 ? '偶数' : '奇数');
复制代码
上面代码利用三元运算符,在字符串之中插入不一样的值。
(5) 变量
1.概念:变量是对“值”的具名引用。变量就是为“值”起名,而后引用这个名字,就等同于引用这个值。变量的名字就是变量名。(变化的量,在JS程序中,用于存储数据的容器。)
2.如何在JS程序中使用变量?
a) 声明变量:告诉浏览器,我要使用这个变量;var 变量名称;//这是声明变量的语法。
b) 初始化变量:给变量赋值;
变量名称=值; //=;赋值,将值存储到变量中;
赋值操做:将等号右边的值(能够是变量)赋值给左边的变量;
c) 声明并初始化变量
var 变量名称=值;
注意:变量使用以前必需要声明;
只声明不赋值,系统给变量默认值:undefined;
变量名称用于到内存中存储数据或者是取数据;
d) 定义多个变量;
var a,b,c; 即var 变量名称,变量,变量
e) 关键字和保留字
关键字:在JS程序中,有特定含义的单词;
保留字:在JS程序中,与特定含义的单词,可是尚未被JS程序使用。
标识符命名规范:
var 8a;//错误
var var; //错误
getElementById //小驼峰 GetElementById //大驼峰
(6) 数据类型 typeOf()
基本数据类型:typeof()变量,获取变量的数据类型;
a) 数字类型: 整数:十进制:0-9 ; 浮点数(小数)
b) 字符串类型:用单引号或者双引号括起数据,字符串,由字符(文本)构成;
c) 布尔类型:用于判断 true:真 false:假
d) 特殊类型
a)数组 b) 对象(函数)
(7) 运算符
a) 加法运算符 基本规则:(+
)是最多见的运算符,用来求两个数值的和。1+1 //2
JavaScript 容许非数值的相加 true+true //2 1+true //2
上面代码中,第一行是两个布尔值相加,第二行是数值与布尔值相加。这两种状况,布尔值 都会自动转成数值,而后再相加。
比较特殊的是,若是是两个字符串相加,这时加法运算符会变成链接运算符,返回一个新的字 符串,将两个原字符串链接在一块儿。
"a"+"bc" //"abc"复制代码
若是一个运算子是字符串,另外一个运算子是非字符串,这时非字符串会转成字符串,再链接在 一块儿。
1+"a" //"1a"
false+"a" //"false"复制代码
加法运算符是在运行时决定,究竟是执行相加,仍是执行链接。也就是说,运算子的不一样,导 致了不一样的语法行为,这种现象称为“重载”(overload)。因为加法运算符存在重载,可 能执行两种运算,使用的时候必须很当心。
"3"+4+5 //"345"
3+4+"5" //"75"复制代码
除了加法运算符,其余算术运算符(好比减法、除法和乘法)都不会发生重载。它们的规则 是:全部运算子一概转为数值,再进行相应的数学运算。
对象的相加 若是运算子是对象,必须先转成原始类型的值,而后再相加
b) 包括加法运算符在内,JavaScript 共提供10个算术运算符,用来完成基本的算术运算。
x + y
x - y
x * y
x / y
x ** y
x % y
++x
或者 x++
--x
或者 x--
+x
-x
余数运算符(%
)返回前一个运算子被后一个运算子除,所得的余数。须要注意的是,运 算结果的正负号由第一个运算子的正负号决定
-1%2 //-1
1%-2 //1复制代码
因此,为了获得负数的正确余数值,能够先使用绝对值函数。
c) 关系运算符 用于比较两个值的大小,而后返回一个布尔值,表示是否知足指定的条件。
注意,比较运算符能够比较各类类型的值,不只仅是数值。JavaScript 一共提供了8个比较运算符。
<
小于运算符>
大于运算符<=
小于或等于运算符>=
大于或等于运算符==
相等运算符(只判断值是否相等)===
严格相等运算符(判断值和数据类型,叫全等或恒等)!=
不相等运算符!==
严格不相等运算符 d) 赋值运算符(Assignment Operators)用于给变量赋值。最多见的赋值运算符,固然就是等号(=
)var x=1; var x=y;
赋值运算符还能够与其余运算符结合,造成变体。下面是与算术运算符的结合。
x=x+y; <=> x+=y;
x=x-y; <=> x-=y;
x=x*y; <=> x*=y;
x=x/y; <=> x/=y;
x=x%y; <=> x%=y;
x=x**y; <=> x*=y;复制代码
e) 逻辑运算符
布尔运算符用于将表达式转为布尔值,一共包含四个运算符。
!
&&
||
?:
(8) 函数
(9) 数组
(10) 字符串
(11) 做用域
(12) 原形
(13) 闭合
(14) JS面向对象设计
DOM: Document 整篇文档 Object 文档对象 Model 模型
(选项卡,轮播图,更改文档结构,购物车,楼梯导航;这些是DOM里边最基础的)
Dom树(层级嵌套)
Browser Object Model
1. 全部的js
程序都要写在script
标签中
2. console.log(“输出的信息”)
a) 输出的信息要用引号括起来 b) 每写完一条语句,要以分号结束
c) 编程中用到的标点符号,都要使用英文的。
3. script
标签:嵌入js
代码
a) script
标签能够写在html中的任何地方,而且html中能够有多个script标签
b) html
中的代码:都是从上往下逐条执行。
c) script
标签中经常使用的属性:
i. type
:规定脚本语言的类型,text
/javascript
ii. src
:资源所在的路径,引入外部的js
文件,script
中添加的代码被忽略。
4. 弹出框提示:
window.alert(“提示信息”)
:使用窗口的提示框功能输出提示信息。
注: a) alert
阻塞以后的代码执行。 b) window
能够省略。
c) alert
中提示信息的换行
5. 单双引号: 在提示信息中,显示引号;内部使用双引号,外部使用单引号;
console.log('"职位介绍"');
console.log("<input type='text' />");
6. 往网页中输出内容:(HTML代码)
a) document.write(“html代码”)
:将html代码写入到网页中。
i. document
:文档,全部的页面都是文档,能够认为是网页
i. write:写
7. 1. confirm(“提示信息”)
:出现一个确认框(提示信息、确认按钮、取消按钮);
a) 提示用户是否肯定对信息的操做。
避免用户误操做当点击肯定的时候,返回一个确认的结果true(真)
当点击取消的时候,返回一个取消的结果false(假)
confirm("肯定删除吗?");//返回真或者假
console.log(confirm("肯定删除吗?"));
8. prompt(“提示信息”)
:出现一个输入框,提示用户输入信息的。开发时不用。
9. javascript
注释:被浏览器忽略不执行的内容。
a) 用来讲明代码的功能
b) 两种注释方式: i.单行注释:// i.多行注释:/* */