js基本功01

前端基本功—js 第1天

[if !supportLists]1.1[endif]课程介绍

前6天js的基础语法(变量,表达式,运算符,分支语句,数组,函数,对象)

后7天DOMAPI

后5天js高级

jQuery基本使用及小项目

[if !supportLists]1.2[endif]浏览的介绍

五大浏览器:谷歌火狐IE欧朋safari

国内的浏览器:360,百度,搜狗,猎豹,遨游

[if !supportLists]1.3[endif]浏览器的运行原理


1、User Interface用户界面,我们所看到的浏览器

2、Browser engine浏览器引擎,用来查询和操作渲染引擎

3、Rendering engine用来显示请求的内容,负责解析HTML、CSS

4、Networking网络,负责发送网络请求

5、JavaScript Interpreter(解析者)   JavaScript解析器,负责执行JavaScript的代码

6、UI Backend   UI后端,用来绘制类似组合框和弹出窗口

7、Data Persistence(持久化)数据持久化,数据存储cookie,HTML5中的sessionStorage

[if !supportLists]1.4[endif]Js的发展历史

1995的时候诞生的liveScript  java   javascript

微软Jscript在自己的系统 内部的浏览器里面,内置了jscript

1997   js的规范提出了ECMA

2003年之前js的地位很低

2004的时候ajax的出现让js的地位发生了翻天覆地的变化

2007年的时候iphone的出现,让js的市场地位又水涨船高

2010年的时候H5   canvas的实现也需要js

2011年的时候node.js伸向了服务器端

Js的书写位置

行内式写在html标签内

内嵌式写在页面的script标签间

   外链式写在一个单独的js文件中,然后引入进来

使用内嵌的话推荐写在html标签的最后

Js的两个网站

http://www.webhek.com/

http://www.codecombat.cn/

Js的组成

ECMA(欧洲计算机制造商协会)规定了js的组成

ECMAScriptjs的基础语法

DOM文档对象模型

BOM浏览对象模型

Js的语言特性

JavaScript是世界上用的最多的脚本语言

脚本语言:不需要编译,只有运行时边解析边执行的语言

JavaScript是一种客户端的脚本语言

JavaScript是一种弱类型的动态语言(动态添加一些属性或是方法)

动态:可以随时动态的给对象添加属性和方法

可以随时的更改数组中的元素

直接量

直接量就是可以拿过来直接使用的数据值。

alert("这是一个弹出框的内容");

变量

变量就是帮助我们往计算机中存储数据用的。

变量的命名规则

命名规则:

变量名必须以字母或下划线“_”或$开头,不能以数字开头

变量可以包含数字(从A至Z的大小字母),下划线或是$

JavaScript严格区分大小写,computer和Computer是两个完全不同的变量

建议:

变量的名称要有意义

变量的命名遵守驼峰命名法,首字母小写,第二个单词的首字母大写

例如:userName

取名的时候,一定不能用系统中的保留字或是关键字


+的作用

varname =prompt("请输入你的姓名");//  console.log(name);alert("你好"+name);// +连接字符串和变量

[if !supportLists]1.[endif]连接字符串和变量+两边只要有一边中是字符串,就是连接的作用

[if !supportLists]2.[endif]数学中的运算+两边都是数字的话,则是数学中的运算

转义符

\+一个字符,组成转译字符.一般用于表示特殊符号

常用的转译符:\n(换行) \b(退格) \\ \t(缩进) \”

typeof关键字用来检测变量的数据类型

//js中所有变量的声明都使用一个关键字var// js的特点,是弱类型的动态语言//所谓的弱类型,就是js对变量里面存储的数据类型要求不严格varname ="张三";varage =20;console.log(typeofname);console.log(typeofage);

Js中的数据类型

简单(基本)数据类型:string  number  boolean  undefined null

内存中的栈空间中开辟内存空间

复杂数据类型:对象object  Array  function  Date   Regexp

是在内存中的堆空间中开辟内存空间。

变量的重新赋值

//  var n1= 20;  //变量的值传递//  var n2 = n1; //是将自己内存空间中的数据值,复制一份存储到变量当中//  console.log(n2);//  var n3 = 50;//  n3 = 80; //重新赋值为80,会将原来的数据给覆盖掉,内内存空间不变//  console.log(n3);varstr ="文字1";str ="文字2";console.log(str);//因为字符串具有不可变性,一旦声明了之后,空间里面的值就不会变了

算术运算符

//就是小学的数学运算+    -   *   /%算术运算符vara =10;varb =20;varc = a+b;console.log(c);

二元运算符:+   -   *    /   %

一元运算符:++     --

前加与后加的区别:

前加加的时候,是先将自身的值加1,然后拿着新值参与运算,而后加加是先用原值参与运算,而后将自身的值再加1.

优先级:一元运行符的优先级要高于二元运算符

复合赋值运算符

其实就是将算术运算符和赋值运算符(=)进行一个合写

+=  -=   *=  /=   %=

关系运算符

就是用来比较两者之间的一个关系

>   <    >=   <=  ==  !=  ===  !==

==:判断两者之间是否相等,只是判断的值

===: 是判断两者类型是否一样,再判断值是否相等

关系运算符的结果要用boolean类型来表示。

逻辑运算符

逻辑运算符:&&    ||     !

&&的两边的表达式,如果有一边的表达式为假的话,则整个表达式的结果就是false.

表达式1表达式2表达式1&&表达式2

TrueTrueTrue

TrueFalseFalse

FalseTruefalse

FalseFalsefalse

||如果||的两边有一个是true的话,则整个表达式的结果就是true

表达式1表达式2表达式1||表达式2

TrueTrueTrue

TrueFalseTrue

FalseTrueTrue

FalseFalsefalse

!原来为true!就变为false ,原来 为false的话,则取!之后就变成了true.

表达式!表达式

TrueFalse

Falsetrue

[if !supportLists]1.20[endif]运算符的优先级

优先级从高到底

()优先级最高

一元算术运算符++   --   !

二元算数运算符先*  /  %后+   -

关系运算符>   >=   <   <=

关系(相等)运算符==   !=    ===    !==

逻辑运算符先&&后||

赋值运算符=

就是四部分:算术>关系>逻辑>赋值

数据类型转换

将其它的数据类型转换为number

隐式类型转换:+  -   *   /  %

显式(强制)类型转换,使用函数。Number()  parseInt()  parseFloat()

NaN  not a number不是一个数字,是属于number类型,表示数字的一种不正常状态,也就是说本来要转换为number类型的值,没有转换过来。

NaN是number类型not a number不是一个数字或者说是非数字  用来表示数值的一种不正常状态,是一个特殊的值

这个值用来表示一个本来要返回数值的操作数未返回值的情况(这样就不会报错了)

任何涉及NaN的操作都会返回NaN   NaN与任何值都不相等,包括自己

isNaN()判断值是否(不是数值),接收值后会尝试将值转换为数值,不能转换为NaN.

强制类型转换之Number()

特点:

a.如果转换的内容可以转成数字,那么就直接返回这个内容对应的数字。

b.如果不可以转换那么返回NaN.

c.如果在内容中出现小数,那么小数会保留。

d.如果内容为空,那么转换成0;

强制数据类型转换之parseInt()的特点:

a.如果转换的内容可以转成数字,那么就直接返回这个内容对应的数字。

b.如果不可以转换那么返回NaN.

c.如果带有小数,那么会去掉小数,而不是四舍五入。

d.如果第一个字符是数字,则继续解析直至字符串解析完毕或者遇到一个非数字符号为止.

强制数据类型转换之parseInt():

a.特点与parseInt()几乎一样,不同点就是parseFloat()可以转换小数部分

其它数据类型转string

隐式类型转换+””

显式(强制)类型转换.toString()

任何数据值都有toString()方法,但是有特殊的两个是没有toString()方法的,是undefined和null     String()

其它数据类型转boolean类型

隐式类型转换!!

显式(强制)类型转换Boolean()

Js中的语言结构

顺序结构

分支结构有条件的执行if   if-else

选择结构if else-if    switch-case

循环结构while   do-while   for   for-in

If的用法

If(判断条件){一般是boolean类型的值或是关系表达式或是逻辑表达式

要执行的代码;

}

执行过程:

首先代码运行到if处的小括号处,判断条件是否成立,如果条件成立,也就是返回true,则进入大括号里面,执行里面的代码,如果判断条件不成立,也就是返回false,则跳过大括号,执行后面的代码。

If只能判断执行一种情况,如果要判断两种情况,就得用if-else结构

If-esle的用法

if(判断条件){一般是boolean类型的值或是关系表达式或是逻辑表达式

要执行的代码;

}else {

要执行的代码

}

执行过程:

首先代码运行到if处的小括号处,判断条件是否成立,如果条件成立,也就是返回true,则进入大括号里面,执行里面的代码,如果判断条件不成立,也就是返回false,则执行else大括号里面的代码,执行完毕 跳出当前结构。

If  else-if结构

if(判断条件){一般是boolean类型的值或是关系表达式或是逻辑表达式

要执行的代码;

}else if(判断条件){

要执行的代码;

}else if(判断条件){

要执行的代码;

}else if(判断条件){

要执行的代码;

}else {

要执行的代码;

}

执行过程:

首先代码运行到if处的小括号处,判断条件是否成立,如果条件成立,也就是返回true,则进入大括号里面,执行里面的代码,如果条件不成立,则依次的进行else if小括号里面,判断条件是否成立,如果成立,也就是返回true,则进入对应的else if里面的大括号,执行里面的代码,如果所有的条件都不成立,也就是返回false,则要看是否有else,如果有,则进入else里面,执行代码,如果没有,则跳出当前结构。

Switch-case结构

Switch(值){变量的值或是数据值

case值1:

要执行的代码;

break;

case值2:

要执行的代码;

break;

case值3:

要执行的代码;

break;

case值4:

要执行的代码;

break;

...

default:

要执行的代码;

break;

}

执行过程:

程序执行到swtich处的小括号,先计算里面的值,拿着计算后的定值,依次和case中的值进行匹配,如果匹配成功,则执行此case里面的代码,执行完毕之后,遇到break,则跳出当前结构,如果匹配都不成功,则要看当前结构当中有没有default,如果有的话,则进入到dafault处执行里面的代码,如果没有,则跳出当前结构,执行后面的代码。

If else-if与switch-case的区别

If  else-if多用于区间的判断

switch-case多用于定值的判断

While循环

所谓的循环就是重复的做同一件事情。

while(循环条件){一般是boolean类型的值或是关系表达式或是逻辑表达式

循环体(需要重复执行的代码);

}

执行过程:

程序运行到while处的小括号处,先判断循环条件是否成立,如果成立,也就是返回true,则进行大括号执行里面的循环体,执行完毕之后,再次回到小括号处,判断循环条件是否成立,如果成立,继续执行里面的代码,如果不成立,则跳出当前循环结构。只要是循环,总有一行码可以改变循环条件,如果没有改变循环条件的代码,这样的循环叫做死循环。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,581评论 18 399
  • 1. 调节宽度 即使是同样的动作,根据脚张开的宽度和接触地面的面积难易程度也会不同。腿张到和肩膀一样宽,是很容易做...
    f69b661ee123阅读 819评论 0 10
  • 录音室里一片漆黑。 “哎,吓我一跳,你怎么不开灯啊!” “我来拷个demo就走,开灯多浪费电。” 宋安宇一边飞速地...
    Sonnieniery阅读 487评论 0 0
  • 密雪繁雾絮,窗影哀迷离。 明眸人迹去,天地一草屋。
    书妻阅读 164评论 1 0