关键词:
1.js的事件冒泡及阻止方法:
事件冒泡的概念:
在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。
换言之,也就是说,如果子类对象的事件被激活,那么父类对象的同类事件也会被激活,并按照有子类对象一直向外延伸的顺序执行.例如下面的代码:
<div onclick="outSideWork()" id="outSide" style="width:100px; height:100px; background:#000; padding:50px"> <div onclick="inSideWork()" id="inSide" style="width:100px; height:100px; background:#CCC"></div> </div> <script type="text/javascript"> function outSideWork() { alert(‘My name is outSide,I was working...‘); } function inSideWork() { alert(‘My name is inSide,I was working...‘); } //冒泡使得大盒子和小盒子都发生命令,并且按照由内到外的顺序执行 </script>
阻止事件冒泡的代码如下,即将事件对象传入,并且调用stopPropagation方法,代码如下(针对不同浏览器进行了优化):
<head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function demo(id,e) { alert(id); stopBubble(e); } function stopBubble(e) { if (e && e.stopPropagation){//判断有没有stopPropagation属性 e.stopPropagation();//停止传播 } else { window.event.cancelBubble = true; } } </script> </head> <body id="body" onclick="demo(this.id , event);"> <div id="outer" onclick="demo(this.id , event);"> <div id="inner" onclick="demo(this.id , event);">点击</div> </div> </body> </html>
2.跨页面通讯之frameset内部页面如何交互:
window.frames 返回窗口中所有命名的框架
parent是父窗口(如果窗口是顶级窗口,那么parent==self==top)
top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe)
self是当前窗口(等价window)
window.opener返回用open方法打开当前窗口的那个窗口
3.JSON
- JSON的语法规则:数组用[]表示,对象用{}表示,名称.值对组成数组对象.名称置于双引号中,值有字符串,数值,布尔值,null,对象和数组.并列的数值之间用对象分割.
序列化JSON对象:
var xiaoming = { name: ‘小明‘, age: 14, gender: true, height: 1.65, grade: null, ‘middle-school‘: ‘"W3C" Middle School‘, skills: [‘JavaScript‘, ‘Java‘, ‘Python‘, ‘Lisp‘] }; JSON.stringify(xiaoming); // ‘{"name":"小明","age":14,"gender":true,"height":1.65,"grade":null,"middle-school":""W3C" Middle School","skills":["JavaScript","Java","Python","Lisp"]}‘
第二个参数可以用于输出对象的指定属性:
JSON.stringify(xiaoming, [‘name‘, ‘skills‘], ‘ ‘);
输出结果
{ "name": "小明", "skills": [ "JavaScript", "Java", "Python", "Lisp" ] }
还可以传入一个函数,利用函数来处理预先处理键值对:
function convert(key, value) { if (typeof value === ‘string‘) { return value.toUpperCase(); } return value; } JSON.stringify(xiaoming, convert, ‘ ‘); /* { 将value全部变成大写. "name": "小明", "age": 14, "gender": true, "height": 1.65, "grade": null, "middle-school": ""W3C" MIDDLE SCHOOL", "skills": [ "JAVASCRIPT", "JAVA", "PYTHON", "LISP" ] } */
将JSON字符串转化为js对象
直接用JSON.parse即可将JSON字符串转化为一个js对象.如下面的代码所示:
JSON.parse(‘[1,2,3,true]‘); // [1, 2, 3, true] JSON.parse(‘{"name":"小明","age":14}‘); // Object {name: ‘小明‘, age: 14} JSON.parse(‘true‘); // true JSON.parse(‘123.45‘); // 123.45
parse也可以接受一个函数,用来在解析的时候对key和value完成对应的操作:
JSON.parse(‘{"name":"小明","age":14}‘, function (key, value) {
// 把number * 2:
if (key === ‘name‘) {
return value + ‘同学‘;
}
return value;
}); // Object {name: ‘小明同学‘, age: 14}
kafka学习笔记:知识点整理
阅读目录1.为什么需要消息系统2.kafka架构 2.1拓扑结构 2.2相关概念 2.3zookeeper节点3.producer发布消息 3.1写入方式 3.2消息路由 3.3写入流程 3.4producerdeliveryguarantee4.broker存储消息 4.1存储方式 4.2存... 查看详情
我的博客笔记汇总版
...置详解_小仙儿-CSDN博客2、前端知识学习2.1、Html+Css+JavaScript2.1.1、我的html学习笔记(一)_小仙儿-CSDN博客2.1.2、我的html学习笔记(二)_小仙儿-CSDN博客2.1.3、HTML5详细介绍及使用_小仙儿-CSDN博客_html52.1.4、HTML5... 查看详情
javascript学习笔记整理(事件)
一、事件驱动1.事件javascript侦测到的用户的操作或是页面的一些行为(怎么发生的)2.事件源引发事件的元素(发生在谁的身上)3.事件处理程序对事件处理的程序或是函数(发生了什么事)二、事件的分类1.鼠标事件onclick ... 查看详情
kafka学习笔记:知识点整理
一、为什么需要消息系统1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多... 查看详情
菜鸟的javascript自学笔记整理(代码片段)
整理学习了JavaScript的相关知识,因为笔者学过C++,所以感觉上手javascript比较容易,故本博文整理了一些JavaScript的特殊之处。(虽然笔者还没有学习过java,但是我知道它两应该是老婆和老婆饼的关系。)... 查看详情
javascript学习笔记整理day9
一.JavaScript定时器: 1.单次定时:setTimeout(fn,time); 2.多次定时:setInterval(timer); 3.停止单次定时:clearTimeout(timer); 4.停止多次定时:clearInterval(timer);实例1:使用单次和多次定时写倒计时<!doctypehtml><htmllang="en"><... 查看详情
javascript学习笔记整理day15
...5.Navigator一.window window概述: 1.window是客户端JavaScript的全局对象 2.它表示web浏览器的一个窗口或窗体,并且用标识符window来引用 1.innerHeight 返回窗口的文档显示区高度IE9以下不兼容 2. 查看详情
raid及mdadm命令_学习笔记
关于Raid及Mdadm命令的学习笔记: 课前小知识: 关于case的小脚本笔记: cat << 查看详情
javascript学习笔记整理day10
...1.使用直接量 2.使用构造函数 3.转换函数四.使用JavaScript进行正则验证 步骤一:准备字符串 步骤二:准备正则表达式 步骤三:执行匹配 查看详情
javascript学习笔记整理day5
#数组##一:数组的定义 1. 数组是值的有序集合 2. 每一个值叫做一个元素 3. 每个元素在数组中都有一个位置,以数字表示,叫做索引。索引从0开始。##二:特点 ... 查看详情
javascript易错知识点整理
前言本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。JavaScript... 查看详情
javascript易错知识点整理
前言本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。JavaScript... 查看详情
javascript易错知识点整理
本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。JavaScript知识... 查看详情
javascript易错知识点整理
前言本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。JavaScript... 查看详情
javascript易错知识点整理
前言本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。JavaScript... 查看详情
javascript易错知识点整理
前言本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。JavaScript... 查看详情
javascript学习笔记整理day4
##函数####函数是一段在一起,可以做某件事的程序。###优点:控制程序设计的复杂性 1. 提高软件的开发可靠性 2. 提高软件的开发效率 3. 提高软件的可维护性&nb... 查看详情
javascript及angularjs1.x版本学习笔记
本人学习JS和AngularJS时做的笔记。JavaScript:基础知识:定义变量:var(全局或函数作用域);let、const(块作用域、不提升变量);Tips:直接使用x=1会将x转换为全局变量,严格模式(“usestrict”)报错;数据类型:Boolean、Number... 查看详情