问题:什么是web前端

前端:指界面,计算机(PC)软件桌面的界面; 计算机端的浏览器界面; 移动端的软件(app)界面; 移动端的浏览器界面。

Html+css+JavaScript 使用网页技术(Html,css,JavaScript)开发界面;

Html,css和JavaScript的关系:

HTML:架构师,网页内容;

CSS:修饰师:装饰内容。

JavaScript:魔术师,内容网页进行交互。

关于学习方法:编程没有捷径;只能多写,多记,多理解。

JavaScript历史:

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的编程语言。

关于浏览器及其内核

作为前端开发,熟悉四大内核是非常有必要的。四大内核的解析不同使网页渲染效果更具多样化。下面总结一下各常用浏览器所使用的内核。 

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双内核;

前五个属于主流浏览器。

一些国内的浏览器他们的内核:

搜狗浏览器:兼容模式(IE:Trident)和高速模式(webkit)

傲游浏览器:兼容模式(IE:Trident)和高速模式(webkit)

QQ浏览器:普通模式(IE:Trident)和极速模式(webkit)

360极速浏览器:基于谷歌(Chromium)和IE内核 360安全

什么是JavaScript?

JavaScript是一门脚本语言。弱数据类型,基于对象,基于事件驱动的语言。

Javascript是解释执行的。 解释器是浏览器。

JS特点

(1) 脚本语言。JavaScript是一种解释型的脚本语言,C、C++、java等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。

(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。

(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。

(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。

(5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。

JS应用:

(1) 网站开发:  网站前端开发:给网页添加动态的效果。 

网站后端开发:Node.js让程序员可以用js自由地写后端了。

(2) Web app:HTML5提供了很多API支持,可以实现原生应用拥有的大部分功能,但是性能有待提高。像Firefox OS就是基于web app的移动操作系统。

(3) 混合式应用开发:把原生应用的一部分用前端技术实现,使原生应用更加灵活。很多应用都会这样做。PhoneGap,React Native之类平台的出现允许程序员使用js来进行移动应用开发。

JavaScript的构成:

1. ECMAScript语言基础;(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 //大驼峰

  • JS严格区分大小写。

(6) 数据类型 typeOf()

基本数据类型:typeof()变量,获取变量的数据类型;

a) 数字类型: 整数:十进制:0-9 ;   浮点数(小数)

b) 字符串类型:用单引号或者双引号括起数据,字符串,由字符(文本)构成;

c) 布尔类型:用于判断    true:真    false:假

d) 特殊类型

  • null:代表空值,一般清除资源的时候用,初始化变量;
  • undefined:代表变量未初始化;
  • NaN:Not a Number 不是一个整数,非数字之间的运算,结果为NaN;
  • isNaN(s)判断是否NaN(不是数字),如果该字符里不是全数字,则返回true;如果是全数字,则返回false。

引用数据类型

    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面向对象设计

2. DOM(文档对象模型):对网页的操作,即对浏览器(可看做容器)内的内容进行操作

DOM: Document 整篇文档  Object 文档对象  Model 模型

(选项卡,轮播图,更改文档结构,购物车,楼梯导航;这些是DOM里边最基础的)

Dom树(层级嵌套)

3.  BOM(浏览器对象模型):对浏览器本身进行操作。

Browser Object Model

编写JavaScript程序

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.多行注释:/* */

JavaScript编程语言 基础 (1)相关推荐

  1. JS:JavaScript编程语言基础语法总结

    JS:JavaScript编程语言基础语法总结 目录 常用基础语法 一.变量 1.声明变量var 二.语句 1.if判断语句 2.for循环语句 三.函数 1.定义一个函数 常用基础语法 consol ...

  2. javaScript系列 [01]-javaScript函数基础

    [01]-javaScript函数基础 1.1 函数的创建和结构 函数的定义:函数是JavaScript的基础模块单元,包含一组语句,用于代码复用.信息隐蔽和组合调用. 函数的创建:在javaScri ...

  3. JavaScript的基础学习篇

    在学习JavaScript之前,我们应该先认识一下什么是脚本语言(Scripting Language)? 脚本语言就是一种简单的程序.在运行之前不需要先进行编译,所有的代码都是在客户程序中直接被执行 ...

  4. 浅谈 JavaScript 编程语言的编码规范--转载

    原文:http://www.ibm.com/developerworks/cn/web/1008_wangdd_jscodingrule/ 对于熟悉 C/C++ 或 Java 语言的工程师来说,Jav ...

  5. JavaScript语言基础(一)

    1.通过学习JavaScript语言基础,我们应该了解关键字与标识符.掌握JavaScript常用的数据类型.熟悉常量与变量.熟悉运算符和表达式. JavaScript语言基础知识框架如下图所示: 此 ...

  6. Javascript夯实基础01

    今天夯实Javascript的基础知识,并进行记录. Javascript null类型错误bug Javascript中的类型中存在一个bug,当我们使用typeof null表达式时,返回的结果是 ...

  7. JavaScript编程基础(一)

    JavaScript 编程基础 JavaScript 是Web上的一种功能强大的编程语言,用于开发交互式的Web页面.它不需要编译,而是直接嵌入在HTML页面中,把静态页面转变成支持用户交互并响应事件 ...

  8. day16 js(JavaScript)基础

    js(JavaScript)基础 document document指代的是HTML:write就是写入. document.write('<h1>这是一个一级标题</h1>' ...

  9. java编程时 尽量少用_Java编程语言基础知识的要点

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.下面就说说Java零基础学习Java编程语言基础知识的几个要点.希望能够对Java编程基础入门学习的新手有帮助 ...

最新文章

  1. 柯南君:看大数据时代下的IT架构(5)消息队列之RabbitMQ--案例(Work Queues起航)...
  2. 皮一皮:35岁后你做什么?
  3. 车牌识别学习资料整理
  4. selenium 在centos中的配置
  5. android 区分wifi是5G还是2.4G(转)
  6. 雅加达EE:干净的板岩
  7. linux修改文件内容_详解5种实用方法---Linux系统清空或删除大文件内容
  8. 线粒体和叶绿体的基因组特点_如何组装植物叶绿体基因组
  9. LeetCode 33. Search in Rotated Sorted Array
  10. 卸载VS2008后重新安装VS2005的苦难历程
  11. layui横向时间线_操盘线:线上阴线满仓,线下阳线清仓
  12. -webkit-line-clamp超过两行就出现省略号
  13. Android Studio 1.0来啦
  14. 2015-11-23 12:50:55
  15. JavaCV人脸识别三部曲之二:训练
  16. VNX VMX and delete luns
  17. 如何提取iOS App素材
  18. 美国共享单车数据分析
  19. 基于STM32智能小车蓝牙遥控实验(有代码含上位机)
  20. Redis安装(完整版)

热门文章

  1. mysql装完后navicat无法连接_重装mysql后导致Navicat连接失败
  2. session很快失效_一口气说出 4 种分布式一致性 Session 实现方式,面试杠杠的~
  3. sql2008能否打开mysql数据库_SQL Server 2008通过LinkServer访问MySQL数据库
  4. 掌握基于AOP事务管理
  5. Scrapy将爬取的段落整合为字符串
  6. [Vue]组件——通过$emit为组件自定义事件
  7. Shiro安全框架入门篇
  8. 理解js中的原型链,prototype与__proto__的关系
  9. Java Web 路径问题
  10. autoresetevent java_[原创]AutoResetEvent, ManualResetEvent的Java模拟