原型:prototype 和 __proto__

  • prototype 给他即将生成的对象继承下去的属性

  • prototype: 显式原型,每个function下都有prototype属性,该属性是一个对象

  • __proto__:隐式原型,每个对象下都有__proto__属性,该属性是一个对象

  • 函数new出来的的对象的原型(__proto__)指向该函数的原型(prototype)

  • 同一个构造器生成的对象,__proto__相同

function A(){
this.name = 'a';
};
function B(){
this.age = ;
};
B.prototype = new A();
var b = new B();

function User(name, age) {
this.name = name;
this.age = age;
} User.prototype.greet = function() {
console.log('Yo,我叫' + this.name + ',我今年' + this.age + '岁了');
} var whh = new User('王花花', );
var lsd = new User('李拴蛋', );
var zks = new User('赵可爽', ); User.prototype.greet = function() {
console.log('你好,打钱');
}

回调函数

① 作为参数的函数

user.intro = null      //删除用户介绍

arr.length              //数组的长度:里边有几个元素

使用.来获取对象中的属性

var obj = {
name: 'whh',
'yo yo yo': 'Mu Ha Ha', //键名中有空格和特殊字符时外部需要加引号
'ke y1': 'val1',
key2: 'val2'
}
function get_val(id) {
var key_name = 'ke y' + id;
return obj[key_name]; //obj[键名]动态键名 取值 注意obj[key_name]无需考虑加引号,即使键名为'ke y1'
}
console.log(get_val());
console.log(obj.name); //obj.键名 取值
console.log(obj['yo yo yo']); //obj[键名] 取值 注意引号obj['yo yo yo']

window对象下涉及时间的三个方法

setTimeout( function(){                          //setTimeout() 定时器
console.log('Yo.');
},) //Yo. //1s后输出 var count = ;
var timer = setInterval(function(){ //setInterval() 间隔器
count ++;
if (count > ){
clearInterval(timer); //clearInterval() 清除间隔器
return;
}
console.log('Yo.' + count);
}, ) //Yo.1
//Yo.2
//Yo.3
setTimeout(function(){
console.log('时间到了');
}, ) console.log('Yo.'); //Yo.
//时间到了

执行顺序:

setTimeout / setInterval 是在窗口外边(时间设为0,只提高窗口外的顺序)
console.log() 在窗口里边(相对 setTimeout/setInterval 先执行)

window对象下用于提示的三个方法

alert('123')                    //提醒
var r = confirm('是否') //是否
var name = prompt('名字') //输入框

方法是定义在对象里边的函数

return: 返回结果,函数中一旦return,函数之后的语句都不会执行

function aa(m){          // 函数中的参数 不需要定义,自动变为函数下的变量
if (!m) {
return 'no';
}
return '';
} document.getElementById('demo1').innerHTML = aa(); // no

For(i=; i<; i++){          //i=0; 如果 i<4; 那么 i++

}

==做类型转换,===不做类型转换

console.log("'1' == 1:", '' == );           //'1' == 1: true          等于
console.log("'1' === 1:", '' === ); //'1' === 1: false 绝对等于

js默认false

a = false;
a = 0;
a = '';
a = NaN;
a = null;
a = undefined;

!!0 // false

!!'' // false

addEventListener() 方法用于向指定元素添加事件句柄。

element.addEventListener("click", myFunction);   //myFunction不需要(), 自动()

<h1 onclick="myFunction()">点击文本!</h1>  //myFunction需要()

id 标识 HTML 元素(不是name属性),innerHTML 来获取或插入内容:

// x.innerHTML 获取x元素(对象)内容

<div id="main">
123
</div>
<script>
var x = document.getElementById('main');
document.write(x.innerHTML);
</script>
//123 123 // x.innerHTML = '789' 插入x元素(对象)内容 <div id="main">
123
</div>
<script>
var x = document.getElementById('main');
x.innerHTML = '789'
document.write(x.innerHTML);
</script>
// 789 789
<h1>我的第一个 Web 页面</h1>
<p>我的第一个段落。</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction()
{
document.write(Date());
}
</script> 运行结果:Sat Jan 27 2018 10:05:44 GMT+0800 (中国标准时间)

如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖

<div id="main">
123
</div>
<script>
document.write('456')
</script> 运行结果:123
456

这种情况不好将整个HTML页面覆盖,因为执行 document.write,页面并未加载完成

自调用函数

(function () {
document.getElementById("demo").innerHTML = "Hello! 我是自己调用的";
})();

自调用函数只执行一次

闭包

function user(name) {
return {
getName: function() {
return name;
},
setName: function(newName) {
name = newName;
}
}
}
var whh = user('王花花'); //typeof whh: object,因为函数user中返回了一个对象 (如果 var whh = user,则typeof whh:function)
var name = whh.getName();
console.log(name); //王花花

闭包:通过父函数来获取到子函数的一个函数作用域,从而去存或者去取里边的值

① 函数里边的函数,通过return{方法}

② 调用父函数→生成对象→调用方法(子函数)

在web页面中全局变量属于 window 对象。

构造函数:用于生成对象的函数

function MyFunction(a, b) {
  this.fName = a;
  this.lName = b;
}
  var x = new MyFunction('sun', 'jia');
  console.log(x); //MyFunction {fName: "sun", lName: "jia"}
  x.firstName; //sun

① this 为即将生成的对象

② 用 new 来实例化

③ 一般首字母大写

js笔记2的更多相关文章

  1. Data Visualization and D3.js 笔记(1)

    课程地址: https://classroom.udacity.com/courses/ud507 什么是数据可视化? 高效传达一个故事/概念,探索数据的pattern 通过颜色.尺寸.形式在视觉上表 ...

  2. js笔记-0

    #js笔记-0 数组: indexOf方法: Array也可以通过indexOf()来搜索一个指定的元素的位置: var arr = [10, 20, '30', 'xyz']; arr.indexO ...

  3. PPK谈JS笔记第一弹

    以下内容是读书笔记,再一次温习JS好书:PPK谈JS window.load=initializePageaddEventSimple('window','load',function(){}) lo ...

  4. 面向小白的JS笔记 - #Codecademy#学习笔记

    前言 最初浏览过<JavaScript秘密花园>,前一段时间读过一点点<JavaScript语言精粹>和一点点<JavaScript高级程序设计>(一点点是指都只是 ...

  5. require.js笔记

    笔记参考来源:阮一峰  http://www.ruanyifeng.com/blog/2012/10/javascript_module.html   1. 浏览器端的模块只能采用“异步加载”方式 = ...

  6. JS笔记 入门第四

    小测试: 注意:取消所有的设定可以直接使用 document.getElementById("txt").removeAttribute("style"); 这 ...

  7. JS笔记 入门第二

    输出内容 document.write(); alert("hello!"); alert(mynum); </script> 注:alert弹出消息对话框(包含一个确 ...

  8. Node.js笔记1

    Node.js入门笔记 1. node -help 可以显示帮助信息2. node REPL 模式(Read-eval-print loop) 输入—求值—输出循环 直接在cmd输入node 可以进入 ...

  9. JS笔记 入门第一

    WHY? 一.你知道,为什么JavaScript非常值得我们学习吗? 1. 所有主流浏览器都支持JavaScript. 2. 目前,全世界大部分网页都使用JavaScript. 3. 它可以让网页呈现 ...

  10. 奇舞js笔记——第0课——如何写好原生js代码

    摘要 1.好的代码职责要清晰,javscript不要用来操作样式: 2.API要设计的合理:通用性,适度的抽象(数据抽象,过程抽象),可扩展性: 3.效率问题:用好的.合适的算法(前端程序员要把自己当 ...

随机推荐

  1. 02 python初学 (数字运算 逻辑运算)

    运算: 5/2 -> 2.5 5//2 -> 2  取整 5%2 -> 1  取余 2**10 -> 1024 指数运算 逻辑运算符: and : 条件1 and 条件2 no ...

  2. 图片完全填充CardView区域

    在Android开发中,使用CardView来显示我们需要展示的图片,但是有时候显示出来的图片并没有填充整个CardView区域,为了让需要展示的图片填充整个CardView区域,只需要在ImageV ...

  3. 典型分布式系统分析:Bigtable

    本文是典型分布式系统分析的第三篇,分析的是Bigtable,一个结构化的分布式存储系统. Bigtable作为一个分布式存储系统,和其他分布式系统一样,需要保证可扩展.高可用与高性能.与此同时,Big ...

  4. Shell第一篇:BASH 环境

    一 什么是SHELL shell一般代表两个层面的意思,一个是命令解释器,比如BASH,另外一个就是shell脚本.本节我们站在命令解释器的角度来阐述shell 命令解释器SHELL的发展历史,SH- ...

  5. IdentityServer4 实战文档

    一.前言 IdentityServer4实战这个系列主要介绍一些在IdentityServer4(后文称:ids4),在实际使用过程中容易出现的问题,以及使用技巧,不定期更新,谢谢大家关注.这些问题. ...

  6. java 日志框架总结

    在项目开发过程中,我们可以通过 debug 查找问题.而在线上环境我们查找问题只能通过打印日志的方式查找问题.因此对于一个项目而言,日志记录是一个非常重要的问题.因此,如何选择一个合适的日志记录框架也 ...

  7. CSS Modules入门教程

    为什么引入CSS Modules 或者可以这么说,CSS Modules为我们解决了什么痛点.针对以往我写网页样式的经验,具体来说可以归纳为以下几点: 全局样式冲突 过程是这样的:你现在有两个模块,分 ...

  8. python爬虫随笔(2)—启动爬虫与xpath

    启动爬虫 在上一节中,我们已经创建好了我们的scrapy项目,看着这一大堆文件,想必很多人都会一脸懵逼,我们应该怎么启动这个爬虫呢? 既然我们采用cmd命令创建了scrapy爬虫,那就得有始有终有逼格 ...

  9. Redux 入门教程(三):React-Redux 的用法

    为了方便使用,Redux 的作者封装了一个 React 专用的库 React-Redux,本文主要介绍它. 这个库是可以选用的.实际项目中,你应该权衡一下,是直接使用 Redux,还是使用 React ...

  10. Python_匿名函数_47

    匿名函数 Eva_J 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数 #这段代码 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc ...