2018-05-29JS基础

js

        javascript脚本语言解释性基于对象事件驱动函数

        js的组成:

                 ECMAScript(语法)

                 BOM(浏览器对象模型)

                 DOM(文档对象模型)

        html和js的整合

                 方式1:内部编写js

                         js代码

                 方式2:

                         外部有一个独立的js文件  后缀名:.js

                         在html中通过script的src属性导入         

                 注意:

                         一旦使用了src属性,那么script标签体中的js代码将不再执行了.

        变量:

                 var变量名=初始化值;

        数据类型:

                 原始类型(5种)

                         Undefined

                         Null

                         String用引号引起来的内容

                         Number

                         Boolean

                         通过typeof可以判断一个值或者变量是否是原始类型,若是原始类型,还可以判断属于那种.

                                  typeof变量|值

                 引用类型

        运算符:

                 关系运算符:

                         两边值都是字符串,比较ascii码

                         两边都是数字,和java一样

                         一边是数字,一遍是字符串形式的数字, 可以比较

                         一边是数字,一遍是普通字符串可以比较值永远是false

                 等性运算符

                         "66"==66  true

                         "666"===666false

        js的语句

                 ifwhile for和java一样


        获取元素:

                 varobj=document.getElementById("id值");

        获取元素的value属性

                 varval=document.getElementById("id值").value;

        设置元素的value属性

                 document.getElementById("id值").value="sdfsdf";

        获取元素的标签体

                 varht=document.getElementById("id值").innerHTML;

        设置元素的标签体

                 document.getElementById("id值").innerHTML="ssss";

        定义函数:

                 方式1:function 函数名(参数列表){函数体}

                 方式2:

                         var函数名=function(参数列表){函数体}

                 注意:

                         函数声明的时候不用声明返回值类型

                         参数列表上不要写参数类型

                         通过return结束方法和将值返回

        事件:

                 onclick单击

                 onsubmit表单提交

                 onload  页面加载成功或者元素加载成功

        事件和函数绑定

                 方式1:通过元素的事件属性         

                 方式2:派发事件

                         document.getElementById("id值").onxxx=function(){...};

                         document.getElementById("id值").onxxx=函数名;


案例1-定时弹出广告

需求:

        打开页面后4秒,展示广告,2秒之后,该广告隐藏.再停2秒,继续展示.

技术分析:

        定时器

定时器(BOM-window对象)

        setInterval(code,毫秒数):周期执行

        setTimeout(code,毫秒数):延迟多长事件后只执行一次.

        清除定时器

                 clearInterval(id):

                 clearTimeout(id):

步骤分析:

        1.确定事件

        2.编写函数

                 a.获取元素

                 b.操作元素


        1.html页面,先把广告隐藏

        2.页面加载成功事件onload

        3.编写函数

                 定时器:

                 操作元素:

                         document.getElementById("")

                 操作css属性

                         document.getElementById("id").style.属性="值"

                         属性:就是css中属性 css属性有"-"例如:backgroud-color

                                  若有"-"只需要将"-"删除,后面第一个字母变大写即可

        注意:

                 只要是window对象的属性和方法,可以把window省略

                         window.onload等价于onload

                         window.setInterval()等价于setInterval()


bom(浏览器对象模型)总结

        所有的浏览器都有5个对象

                 window:窗口

                 location:定位信息 (地址栏)

                 history:历史

window对象详解:

        如果文档包含框架(frame或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,

        并为每个框架创建一个额外的window 对象。

        常用的属性:

                 通过window可以获取其他的四个对象

                         window.location等价域location

                         window.history等价于history

                         ...

        常用的方法

                 消息框

                         alert("...."):警告框

                         confirm("你确定要删除吗?"):确定框返回值:boolean

                         prompt("请输入您的姓名"):输入框返回值:你输入的内容

                 定时器

                         设置定时器

                                  setInterval(code,毫秒数):周期执行

                                  setTimeout(code,毫秒数):延迟多长事件后只执行一次.


                                  例如:

                                          setInterval(showAd,4000);

                                          serInterval("showAd()",4000);

                         清除定时器

                                  clearInterval(id):

                                  clearTimeout(id):

                 打开和关闭

                         open(url):打开

                         close():关闭


location:定位信息 

        常用属性:

                 href:获取或者设置当前页面的url(定位信息)

                 location.href;获取url

                 location.href="...";设置url 相当于 a标签


history:历史

        back();后退

        forward():向前

        ★go(int)

                 go(-1)相当于back()

                 go(1)相当于forward()


案例2-表单校验plus

需求:

        提示信息不用弹出框,将信息追加在文本框后面

技术分析:

        确定事件表单提交的时候onsubmit

                         文本框失去焦点的时候onblur

        编写函数

        获取元素

                 document.getElementById("id值");

        操作元素(获取元素的值,操作标签体,操作标签value属性)


步骤分析:

        1.表单

        2.表单提交的时候确定事件onsubmit()

        3.校验用户名和密码

        4.获取用户名和密码的对象及值

        5.判断内容,当为空的时候,获取响应的span元素

                 往span元素中显示错误信息


注意:

        在方法中(function())

this指代的是当前的元素(当前dom对象)

例如:

        方法:

                 functionloseFocus(obj){

                         alert(obj);

                 }


事件总结:

        常见的事件:

                 焦点事件:★

                         onfocus

                         onblur

                 表单事件:★

                         onsubmit

                         onchange改变

                 页面加载事件:★

                         onload

                 鼠标事件(掌握)

                         onclick

                 鼠标事件(了解)

                         ondblclick:双击

                         onmousedown:按下

                         onmouserup:弹起

                         onmousemove:移动

                         onmouserover:悬停

                         onmouserout:移出

                 键盘事件(理解)

                         onkeydown:按下

                         onkeyup:弹起

                         onkeypress:按住


绑定事件:

        方式1:

                 元素的事件属性

        方式2:

                 派发事件


了解

        阻止默认事件的发生

        阻止事件传播


案例3-隔行换色

需求:

        一个表格,隔一行换一个色

技术分析:

        事件:onload

        获取元素:dom操作


获取元素:

        document.getElementById("id"):通过id获取一个元素

        document.getElementsByTagName("标签名"):通过标签名获取一种元素(多个)返回一个数组

Array:

        常用属性:

                 length:数组的长度


步骤分析:

        1.html表格一加载的时候确定事件onload

        2.编写函数

                 a.获取元素(所有的tr元素)

                b.操作(若当前行是偶数的话加一个样式,若是奇数的话,加另一个样式)


        //页面加载成功

                         onload=function(){

                                  //1.获取所有的tr

                                  vararr=document.getElementsByTagName("tr");

                                  //alert(arr);

                                  //alert(arr.length);

                                  //2.判断奇偶数添加不同的样式遍历数组

                                  for(vari=1;i

                                          if(i%2==0){

                                                  arr[i].style.backgroundColor="#FFFFCC";

                                          }else{

                                                  arr[i].style.backgroundColor="#BCD68D";

                                          }

                                  }

                         }


案例4:全选或者全不选

步骤分析:

        1.确定事件最上面那个复选框的单击事件onclick

        2.编写函数:让所有的复选框和最上面的复选框状态保持一致

                 a.获取最上面这个复选框选中状态通过checkbox的checked属性即可

                 b.获取其他的复选框,设置他们的checked属性即可

                         可以通过以下两种方案获取元素

                                  document.getElementsByClassName():需要给下面所有的复选框添加class属性

                                  document.getElementsByName():需要给下面所有的复选框添加name属性


dom(文档对象模型)

        当浏览器接受到html代码的时候,浏览器会将所有的代码装载到内存中,形成一棵树(document树)

        节点(Node)

                 文档节点document

                 元素节点element

                 属性节点attribute

                 文本节点text

        获取节点:

                 通过document可以获取其他节点:

                         常用方法:

                                  document.getElementById("id值"):获取一个特定的元素

                                  document.getElementsByTagName("标签名"):通过标签名获取一种元素(多个)

                                  document.getElementsByClassName("class属性的值"):通过class属性获取一类元素(多个)

                                  document.getElementsByName("name属性的值"):通过name属性获取一类元素(多个)

                 设置获取获取节点的value属性

                         dom对象.value;获取

                         dom对象.value="";设置

                 设置或者获取节点的标签体

                         dom对象.innerHTML;获取

                         dom对象.innerHTML="";设置

                 获取或者设置style属性

                         dom对象.style.属性;获取

                         dom对象.style.属性="";设置

                 获取或者设置属性

                         dom对象.属性


对于htmldom的操作若在js或者htmldom 查找不到去查找xml dom

        关于文档的操作在 xml dom 的document中

        关于元素的操作在 xml dom 的element中

                 appendChild(dom对象):在一个元素下添加孩子


案例5-左右选中.

需求:

技术分析:

        1.确定事件,按钮的单击事件

        2.编写函数:

                 点击移动单|多个的:

                         a.获取左边选中的选项  select对象.options--数组

                                  遍历数组判断是否选中 option对象.selected

                         b.将其追加到右边的下拉选中

                                  rightSelect对象.appendChild(option);

                 点击移动所有的

                         a.获取左边的所有的选项

                         b.一个个的追加过去


案例6-省市联动

需求:

        选中省的时候,动态的查询当前省下的所有市,然后展示在市的下拉选中

技术分析:

        数组:


数组:

        语法:

                 newArray();//长度为0

                 newArray(size);//指定长度的

                 newArray(e1,e2..);//指定元素

                 非官方

                         vararr4=["aa","bb"];

        常用属性:

                 length

        注意:

                 数组是可变的

                 数组可以存放任意值

        常用方法:(了解)

                 存放值:对内容的操作

                         pop():弹  最后一个

                         push():插入到最后

                         shift():删除第一个

                         unshift():插入到首位

                 打印数组:

                         join(分隔符):将数组里的元素按照指定的分隔符打印

                 拼接数组:

                         concat():连接两个或更多的数组,并返回结果。

                 对结构的操作:

                         sort();排序

                         reverse();反转


步骤分析:

        1.省的下拉选的选项中添加value属性当成数组的索引

        2.初始化市

        3.选择省的时候,onchange事件

        4.编写函数,

                 通过获取的索引获取对象的市的数组this.value

                 遍历数组,将数组里面的每个值组装option添加到select中即可


引用类型总结:

        原始类型中的String

Number Boolean都是伪对象,可以调用相应的方法

        Array:数组

        String:

                 语法:

                         newString(值|变量);//返回一个对象

                         String(值|变量);//返回原始类型

                 常用方法:

                         substring(start,end):[start,end)

                         substr(start,size):从索引为指定的值开始向后截取几个

                         charAt(index):返回在指定位置的字符。

                         indexOf(""):返回字符串所在索引

                         replace():替换

                         split():切割

                 常用属性:length    

        Boolean:

                 语法:

                         newBoolean(值|变量);

                         Boolean(值|变量);

                         非0数字非空字符串非空对象转成true

        Number

                 语法:

                         newNumber(值|变量);

                         Number(值|变量);

                 注意:

                         null====>0

                         fale====>0true====>1

                         字符串的数字=====>对应的数字

                         其他的NaN

        Date:

                 newDate();

                 常用方法:

                         toLocalString()

        RegExp:正则表达式

                 语法:

                         直接量语法  /正则表达式/参数

                         直接量语法  /正则表达式/

                         newRegExp("正则表达式")

                         newRegExp("正则表达式","参数")

                         参数:

                                  i:忽略大小写

                                  g:全局

                         常用方法:

                                  test():返回值为boolean

        Math:

                 Math.常量|方法

                 Math.PI

                 Math.random()  [0,1)

        全局:

                 ★

                 decodeURI()解码某个编码的 URI。

                 encodeURI()把字符串编码为 URI。

                 Number():强制转换成数字

                 String():转成字符串

                 parseInt():尝试转换成整数

                 parseFloat():尝试转换成小数

                 eval()计算 JavaScript 字符串,并把它作为脚本代码来执行。












//////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////             

上午回顾:

BOM(浏览器对象模型)

        window对象:窗口

                 注意:

                         若是window对象的属性和方法,调用的时候可以省略window

                 常用属性:

                         通过window可以获取其他的四个对象

                                  window.location等价于location


                 常用方法:

                         消息框

                                  alert()警告框

                                  confirm()确认框返回值:boolean

                                  prompt()  输入框返回值:输入的内容

                         定时器

                                  设置

                                          setInterval(code,毫秒数):循环

                                          setTimeout(code,毫秒数):延迟只执行一次

                                  清除

                                          clearInterval(id):

                                          clearTimeout(id):

                         打开和关闭

                                  open(url)

                                  close()

        location对象:定位信息地址栏

                 常用属性:

                         href:获取或者设置当前页面的url

                                  location.href:获取

                                  location.href="url":设置相当于超链接

        history对象:操作历史

                 常用方法:

                         go()

////////////////////////////

事件:

        焦点:★

                 onfocus:获取焦点

                 onblur:失去焦点

        表单事件:★

                 onsubmit:form表单里的

                 onchange:改变(下拉选)

        页面或者对象加载:★

                 onload:

        鼠标:★

                 onclick:单击

        键盘:

                 onkeyup:



dom(★)

        获取元素的方法(4个) document

        操作元素的属性  dom对象.属性;


引用类型:

        array

        string

                 substring

        全局:

                 编码2个

                 强制转化NumberString

                 尝试  parseXxx

                 eval()解析字符串形式的js代码

        Mathrandom()

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

推荐阅读更多精彩内容

  • 欢迎关注个人微信公众账号:byodian个人博客:Byodian's Blog JavaScript 基础知识总结...
    工具速递阅读 752评论 0 3
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,096评论 0 21
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,473评论 1 11
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,752评论 0 8
  • 四季的无情变幻 大树的容颜不再 上次相遇时它的叶子是盈绿的 你们都来好不好 和我一起在树下排坐 世界只有那首老歌 ...
    Liou哒哒阅读 164评论 0 5