参考博客:http://www.cnblogs.com/yuanchenqi/articles/5980312.html

JavaScript包括三部分: ECMAScript、DOM、BOM

Javascript在开发中大多数情况下是基于对象的,也是面向对象的。

ECMAScript:语法、类型、语句、关键字、保留字、运算符、对象

JavaScript 引入方式:

  1. 直接编写:建议放在 body 的最后

<script>

alert(“hello div”)

</script>

2. 导入文件:建议放在 head 里面

<script src=”hello.js></script>

变量:var

注释方式:1. //     2. /* */

数据类型: 1. Number,包括整型和浮点型  2. String   3. Boolean   4. Null   5. Undefined:undefined

NaN:当字符串转换成数字失败时,就是NaN,属于 Number数据类型

NaN 数据在表达式中结果一定为 false,除了 !=

typeof:数据类型查询,只能检测基本数据类型,对象不能检测

逻辑运算符:

ECMAScript:

native object:

host object: DOM 、BOM

DOM: document.write

BOM:alert(111)

 

 function 创建方式:

  1. function func() {
        alert(123);
        return 8;
    }

    var ret = func()
    alert(ret)

  2. var func2 = new function ("1", "n", "函数体") ;

instanceof:检测对象类型   s instanceof String

字符串:

两种创建方式:1. var s=“hello” 2. var s2=new String(“hello”)

方法:

1. s.length

2. 遍历

3. 编排方法:s.italics()  s.bold() s.anchor()

4.大小写转换: s.toUpperCase()  s.toLowerCase()

5. 获取指定字符: s.charAt(3)//取对应位置的字符

s.charCodeAt(3)//取对应位置字符的ASCII值

6. 查询字符串: s.match(“l”)//返回一个数组,里面是所有匹配结果   s.search(“l”)//得到第一个匹配结果的索引值

7. s.replace(“E”,”e”);  s.split(“E”); s.concat(“ world”)// 进行字符串拼接

8. 截取字符串: s.substr(1, 2)  //从索引 1 开始往后取 2 个元素

s.substring(1,3) //从索引1 取到索引2

s.slice(1, -2)  //后面的位置可以取负数,也是左闭右开

9. 根据元素取索引 s.indexOf(“l”)   s.lastIndexOf(“l”)

数组 Array:

创建方式: 1. var arr=[1,2,3] 2. var arr2=new Array(1,2,3,4)

//如果采用初始化对象方式创建数组,如果里面只有一个值且是一个数字,那么数字表示的是长度,而不是内容  var arr=new Array(3)

//数组是可变长的

数组对象的方法:

  1. [“hello”,”world”].join(“---”)
  2. 栈操作:push、pop(在栈顶部操作)  unshift、shift(在栈底部操作)

arr5.push(13)

var ret = arr5.pop()//删除最后一个元素,返回值是删除元素的值

arr5.unshift(45)

arr5.shift

3. 排序:sort reverse

arr5.reverse() //反转,直接更改数组

arr5.sort()

4. concat: 连接数组   b=a.concat(4,5)

5. toString()         // a.toString() 用 ’,’ 连接数组内的每个元素

Date 对象:

  1. 创建方式: var date_obj=new Date();

正则对象:

 

Math 对象:

 

Window 对象方法:

alert():显示带有一段消息和一个确认按钮的警告框

confirm():显示带有一段消息以及确认按钮和取消按钮的警告框

prompt():显示可提示用户输入的对话框

setInterval():循环的,按照指定的周期(以毫秒计)来调用函数或计算表达式

clearInterval():取消由setInterval设置的timeout

setTimeout():只一次,在指定的毫秒后调用函数或计算表达式

clearTimeout():取消由setTimeout设置的timeout

document.getElementById(“clock”)

document.getElementsByClassName(“div2”)

 

History 对象方法:

history内部三种方法:forward、back、go   history.go(-1|1)

一个属性length:保存的是 history 的历史页面个数

 

location:

onclick=”location.reload()”   刷新

onclick = “location.href=’http://www.baidu.com’”

DOM对象:

HTML中所有内容都是节点(NODE)

整个文档是一个文档节点(Document 对象)

每个HTML元素是元素节点(element对象)

html元素内的文本是文本节点(text 对象)

注释是注释节点(comment对象)

节点(自身属性):

attributes:节点的属性节点

nodeType:节点类型

nodeValue:节点值

nodeName:节点名称

innerHTML:节点(元素)的文本值,即 text 值

导航属性:

parentNode:节点的父节点

firstChild:节点下第一个子元素    #text

lastChild:节点下最后一个子元素

childNodes:节点(元素)的子节点

parentElement:

firstElementChild:

lastElementChild:

children:子节点元素

nextElementSibling:下一个兄弟节点标签

previousElementSibling:上一个兄弟节点标签

访问HTML元素(节点):

getElementById()

getElementsByTagName() :  p、div

getElementsByClassName()

getElementsByName():  <p name=”lily”> hello p </p>

全局查找:

在document下查找:   document.xxx

局部查找:   局部查找不可以通过 id 、name        var ele = document.getElementsByClassName(“div3”)

var ele2 =ele.getElementsByTagName(“p”)

HTML DOM Event:

onclick:点击

ondblclick:双击

onfocus:元素获得焦点   // 练习:输入框

onblr:失去焦点

onchange:域的内容被改变,应用场景

onkeydown:按下键盘某个键

onkeypress:键盘被按下并松开

onkeyup:键盘被松开

onload:一张页面或一幅图像。放在body标签上,当页面记载完成后才会去执行对应函数的内容。

window.onload=function(){ .....}

onmousedown:按下鼠标

onmousemove:移动鼠标

onmouseout:鼠标离开指定区域会触发

onmouseover:鼠标一进入指定区域就会触发

onsubmit:只能绑定在 form 标签上

event.stopPropagation():阻止事件传播

标签的增删改查:

添加: createElement(“p”)    appendChild(son)

删除:removeChild(last_son)

改:ele.innerHTML 、ele.innerText   前者可以解析字符串内的标签

ele.style.fontSize=”30px”

elementNode.setAttribute(name,value)

elementNode.getAttribute(name)

elementNode.className

elementNode.classList.add(“big”)

elementNode.classList.remove(“big”)

DHTML: dynamic html(动态html)

<a href=”javascript:void(0)”>hello</a>,实现的功能和 onclick 一样,javascript 就是一个伪协议

03 前端篇(JS)的更多相关文章

  1. 前端总结·基础篇·JS(二)数组深拷贝、去重以及字符串反序和数组(Array)

    目录 这是<前端总结·基础篇·JS>系列的第二篇,主要总结一下JS数组的使用.技巧以及常用方法. 一.数组使用 1.1 定义数组 1.2 使用数组 1.3 类型检测 二.常用技巧 2.1 ...

  2. 前端总结·基础篇·JS(一)五大数据类型之字符串(String)

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(二)补充 前端总结·基础篇·JS(一)五大数据类型之字符串(String) 目录 这是& ...

  3. 前端总结·基础篇·JS(三)arguments、callee、call、apply、bind及函数封装和构造函数

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...

  4. 前端总结·基础篇·JS(四)异步请求及跨域方案

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...

  5. 前端总结·基础篇·JS(一)原型、原型链、构造函数和字符串(String)

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...

  6. angular2之前端篇—1(node服务器分支)

    上一篇.net core和angular2之前端篇-1 使用的是dotnet模板.之所以用它,因为想用他写webapi,但是写道下一篇的时候遇到点问题,所以先写个分支测试一下.这次是用Node作为服务 ...

  7. 【原】让H5页面适配移动设备全家 - 前端篇 - PPT

    7月份在部门内给设计中心的同事们带来<让H5页面适配移动设备全家 - 设计师篇 - PPT>的分享,在视觉和交互稿上提出页面适配的建议及提升页面体验的好处,促进前端和设计双方更好的合作,同 ...

  8. Web前端-Vue.js必备框架(五)

    Web前端-Vue.js必备框架(五) 页面组件,商品列表组件,详情组件,购物车清单组件,结算页组件,订单详情组件,订单列表组件. vue-router 路由 vuex 组件集中管理 webpack ...

  9. Web前端-Vue.js必备框架(四)

    Web前端-Vue.js必备框架(四) 计算属性: <div id="aaa"> {{ message.split('').reverse().join('') }} ...

随机推荐

  1. 自己动手用原生实现 bind/call/apply

    大家好!!!注册一年多的第一篇博客. 自我介绍: 本人非计算机专业出身,转行进入前端半年时间,写的东西可能观赏性不强,一起进步吧道友们... 接下来的一段时间, 我都会不定期整理自己理解的js知识点, ...

  2. SignalR使用笔记

    最近项目要求添加一个给用户发送消息的功能,就决定使用SignalR.翻到了以前学习SignalR的学习笔记,基本是官方文档的简版整理,便于快速阅览和实现. 1. nuget添加signalr引用: a ...

  3. Redis in .NET Core 入门:(1) 安装和主要功能简介

    Redis(https://redis.io/), 是一个内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 安装Redis 我很少在开发机中直接装各种数据库,我一般使用Docker,针对 ...

  4. Fescar(Seata)-Springcloud流程分析-1阶段

    Fescar是阿里18年开源的分布式事务的框架.Fescar的开源对分布式事务框架领域影响很大.作为开源大户,Fescar来自阿里的GTS,经历了好几次双十一的考验,一经开源便颇受关注.今天就来看了F ...

  5. Asp.Net Core 轻松学-HttpClient的演进和避坑

    前言     在 Asp.Net Core 1.0 时代,由于设计上的问题, HttpClient 给开发者带来了无尽的困扰,用 Asp.Net Core 开发团队的话来说就是:我们注意到,HttpC ...

  6. LVS负载均衡原理

    一.LVS基本原理概述 LB集群的实现,LB即负载均衡集群 硬件:F5 BIG-IP,Citrix NetScaler,A10,Array,Redware 软件:Lvs,nginx,haproxy,a ...

  7. [.NET] 使用 Senparc.Weixin 接入微信公众号开发:简单实现自动回复

    使用 Senparc.Weixin 接入微信公众号开发:简单实现自动回复 目录 一.前提 二.基本配置信息简析 三.配置服务器地址(URL) 四.请求处理 一.前提 先申请微信公众号的授权,找到或配置 ...

  8. 从零开始学安全(四十四)●TCP三次握手四次挥手

    wireshark:Beyond Compare是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与 ...

  9. AJAX获取JSON WEB窗体代码

    1.添加引用 using System.Web.Services; 2.添加方法 [WebMethod] public static string getFoodClasses(int parentI ...

  10. 《PHP制作个人博客》之四:分类添加及前端导航数据用php动态调取

    大家好,今天我们接着上一节的全栈营销个人博客制作,上一节我们把博客的模板给加载运行起来.今天我们主要讲解后台模板分类的添加,后台导航的添加,及前台导航的动态调用.一个好的博客,导航很重要,导航就像你网 ...