随手记

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript深入简出</title>
</head>
<body>

</body>
<script>    

// 第一章 1.1函数表达式 四种方法

// function variable 函数表达式
var add = function(a,b){
    // dosth
};

// IEF(Immediately Executed Function)立刻执行函数,匿名函数直接调用也叫作立即执行函数表达式
(function(){
    // dosth
})();

// first-class function 函数也是对象,可以将它作为函数返回值来调用
return function(){
    // dosth
};

// NTF(Named Function Expression)命名函数表达式  ****-
var add = function foo (a,b){
    // dosth
};

  ---------变量和函数声明在开始前会前置------------------

// NTF(Named Function Expression)命名函数表达式  ****-
// 著名的BUG
var func = function nef(){};
alert(func===nfe);
// 递归调用
var func = fuction nfe(){/* dosth */ nfe()};
//以上在ie6-8现实可以调用,

//   第一章 1.2  大写的F  Function 构造器 使用程度 **---
    var func = new Function(‘a‘+‘b‘,‘console.log(a + b)‘);
    func(1,2);//3

    var func = Function(‘a‘+‘b‘+‘console.log(a + b)‘);
    func(1,2);//3
// Function 构造器不实用的原因
// CASE 1
Function(‘var localVal = "local";console.log(localVal);‘)();
console.log(typeof localVal);
// result:local,undefined

//CASE 2
var globalVal = ‘goabl‘;
(function(){
    var localVal = ‘local‘;
    Function(‘console.log(typeof localVal + typeof gobalVal;‘)();
})();

-----------------------------------------------------------------
                        |  函数声明   | 函数表达式    |   函数构造器
前置                    |        是      |       是          |        否
允许匿名                   |        否      |        对          |        对
加上括弧立刻调用         |        否      |        对          |        对
在定义该函数的作用
域通过函数名访问        |        对      |     否          |        否
没有函数名                |        否      |     否          |        对

/ 第二章 this关键字

// 全局的this(浏览器)
 // eg.
 console.log(this.document === document);//true

 console.log(this === window);//true

 this.a = 38;
 console.log(window.a);//38

/一般函数的this(浏览器)

//eg.

function f1() {
    return this;
}

f1() === window;//true,global object

/但是在严格模式下回报错

//function f2(){
    ‘use strict‘
    return this;
}

f2() === undefined;//true

/作为对象方法的函数this
// eg.
var o = {
    prop:37,
    f:function(){
        return this.prop;
    }

};

console.log(o.f());//logs 37

/对象原型链上的this
//eg.
var o = {f:function(){ return this.a + this.b;}};
var p = Object.create(o);
p.a = 1;
p.b = 4;

console.log(p.f());

/get/set方法与this

function modulus(){
    return Math.sqrt(this.re*this.re + this.im*this.im);
}
var o = {
    re:1,
    im:-1,
    get phase(){
        return Math.atan2(this.im,this.re);
    }
};

Object.defineProperty(o,‘modulus‘,{
    get:modulus,enumerable:true,configurable:true
});

console.log(o.phase,o.modulus);//logs -0.78 1.4142

/构造器中的this
//eg.
function MyClass(){
    this.a = 37;
}
var o =new MyClass();
console.log(o.a);//37
function C2(){
    this.a = 37;
    return {a:38};
}

o = new C2();
console.log(o.a);//38

/call/apply方法与this
//eg.
 function add(c,d){
     return this.a + this.b + C + d;
 }

 var o = {a:1,b:3};

 add.call(o,5,7);//1+3+5+7 = 16;

 add.apply(o,[10,20]);//1+3+10+20 = 34;

 fucntion bar(){
     console.log(Object.prototype.toString.call(this));
 }
bar.call(7);//"[object Number]"

/bind 方法与this
//eg.
function f(){
    return this.a;
}

var g = f.bind({a:"test"});
    console.log(g());//test

var o = {a:37,f:f,g:g};
console.log(o.f(),o.g());//37,test

/对象的概述
//对象中包含一系列的属性,这些属性是无序的,每一个属性多有一个字符串的key和对应的value
 var obj = {a:2,b;1};
 obj.a;//2
 obj.b;//1

 // 对象的结构
 // writable可写
 // enumerable
 // configurable
 // value
 // get/set

</script>
</html>
时间: 2024-08-08 21:53:50

随手记的相关文章

随手记(二)

首先一个随手记app需要一个登陆注册功能,而androidstudio自带的sqllite就起到了很强大的作用. 1.用户登陆界面 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical&quo

[转]灯灯小程序开发手记:仿今日头条(上)

本文转自:http://www.jianshu.com/p/a1e0b8abb12d 写在前面 新的一年,祝大家新年快乐!当然对于程序员来说,新的一年,也要有新的改变.因此灯灯决定凑热闹编写微信小程序啦! 上一篇文章<记一次小程序开发过程>中,灯灯大致写了下自己第一次开发小程序的感受和流程.这一次灯灯会详细记录下自己制作一个小程序的思路.遇到的问题.涉及到的代码等和大家分享.    视频教程地址:http://study.163.com/course/introduction.htm?cour

[小北De编程手记] : Lesson 08 - Selenium For C# 之 PageFactory &amp; 团队构建

本文想跟大家分享的是Selenium对PageObject模式的支持和自动化测试团队的构建.<Selenium For C#>系列的文章写到这里已经接近尾声了,如果之前的文章你是一篇篇的读下来并动手实践的话,我相信你应该可以模拟日常工作中80%常见的手动测试用例了.请注意:我的用词是模拟用例,而不是书写自动化测试用例.一个企业级的自动化测试的构建不是单靠Selenium一种技术就能Hold住的.所谓模拟指的是只能实现自动化的某个Case,但是不能工程化的使用.在本人所接触过几家公司的自动化测试

[小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建

在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识.刚刚开通了博客,就从最基础的开始吧,算是写给初学者的编程手记,也算是给对自动化完全不了解的小伙伴开个头.时间允许的话会坚持更新下去... ... 后续的文章计划会谈到一些企业级自动化测试平台的构建(但愿有时间完成哈~~). 关于自动化测试的框架,网上有很多相关的对比,在这里我我就不评论和对比了.本人

让项目管理理论&ldquo;落地&rdquo;&mdash;&mdash;读《IT项目经理成长手记》有感

最近利用业余时间阅读了一本好书--<IT项目经理成长手记>(潘东.韩秋泉著).本书的两位作者是神州数码(中国本土最大的整合IT服务提供商)的高管,在书中他们介绍了神州数码在IT项目管理领域积累的实践做法和工作思路.本书从IT项目经理面临的真实问题和场景出发,将一个项目管理实践者所亲历的案例整理成"手记",如实地记录下问题解决方法和收获的经验教训. 读完此书,结合科研项目管理的现状,进行了一些思考.在此,将思考后的感想分享. 一.量化指标,使项目状态透明化 书中提出了一个让人

大叔手记(1):使用VisualStudio的查找与替换替代默认的系统搜索(转载)

大叔手记(1):使用VisualStudio的查找与替换替代默认的系统搜索 一直以来,一直使用Visual Studio的查找与替换(Find and Replace)来搜索当前项目或整个解决方案里的代码,从来没怎么注意右边的那个选择文件夹功能. 原来还可以选择非解决方案的文件夹,而且试用了一下,速度明显比默认的系统搜索功能快,尤其是在阅读.NET4.0源码的时候,效果真是高啊. 大叔手记:旨在记录日常工作中的各种小技巧与资料(包括但不限于技术) 原文链接 本文由豆约翰博客备份专家远程一键发布

myeclipse 10 +Axis2 1.62 开发WebService手记

由于临时需求,不得不用java来开发一个webservice,之前对java webservice一片空白.临时查资料,耗费近一天,终于搞定,效率是慢了点.呵呵. 首先 配置Tomcat 中WebService解析容器,下载Axis2-1.6.2 注意分别下载 红框的两个文件   其中注意将 axis2-1.6.2-war.zip 中axis2.war解压出 ,放到tomcat 中 webapps中,然后在浏览器中输入http://localhost:8080/axis2/ 测试容器是否成功.(

[分享]源代码&amp;开发手记:SAE应用“车百科” (Python + SAE + Bottle + Bootstrap) - Bottle - Python4cn(news, jobs)

[分享]源代码&开发手记:SAE应用"车百科" (Python + SAE + Bottle + Bootstrap) - Bottle - Python4cn(news, jobs) [分享]源代码&开发手记:SAE应用"车百科" (Python + SAE + Bottle + Bootstrap)[分享]源代码&开发手记:SAE应用"车百科" (Python + SAE + Bottle + Bootstrap) -

随手记(一)(六)

补上之前放在草稿箱忘记发的一,到现在也算是对这个结对项目的总结. 首先是他的结构图 他总共有这么几个功能,用户通过注册登录来进入到随手记中,然后首先出现的会是账户总界面,像余额还有多少.当月的支出.当月的收入.其次通过滑动可到计划详情中,可看到详细的计划. 第三当滑动到多计划的主题中,你可以看到像记一笔,计一划,想查看的账单和你的收支统计的图,你还可以导出你的数据.在记一笔中又有事件类型,时间,费用,备注这些东西来方便你记录,通过账单来显示到你的东西,就像下图所示. 在计一划中,你可以对你的早上

[小北De编程手记] : Lesson 05 - Selenium For C# 之 API 下

上一篇,我们介绍了一些Selenium WebDriver相关的API,下面我们就接着上一篇继续介绍Selenium常用的API,这一篇的内容主要涉及到以下话题: Selenium API:复杂事件处理 Selenium API:特殊DOM元素处理 Selenium API:截图功能 Selenium API:关于框架扩展 (一)Selenium API:复杂事件处理 首先,我们试想一下这样的场景.待测试的系统支持一些组合键的操作,例如:按住Ctrl的同时点击某个表格的某个单元格,该数据行会高亮