javascript笔记(2)(Evernote)

一、函数声明与函数表达式的区分

    函数声明:

  function  函数名称  (参数:可选) { 函数体 }

  函数表达式:

  function  函数名称(可选)(参数:可选) { 函数体 }

 

  function foo(){} // 声明,因为它是程序的一部分  var bar = function foo(){}; // 表达式,因为它是赋值表达式的一部分

  new function bar(){}; // 表达式,因为它是new表达式

  (function(){    function bar(){} // 声明,因为它是函数体的一部分  })();

还有一种函数表达式不太常见,就是被括号括住的(function foo(){}),他是表达式的原因是因为括号 ()是一个分组操作符,它的内部只能包含表达式

二、Module模式
  1. 模块化,可重用
  2. 封装了变量和function,和全局的namaspace不接触,松耦合
  3. 只暴露可用public的方法,其它私有方法全部隐藏
 三、自己第一次做出来的函数 window.onload=function(){ var song=document.getElementById("myFirst"); song.addEventListener("click",changeBoxes,false); } function changeBoxes(evt){ var oForm=document.forms["myForm1"]; var oCheckBox=oForm.hoby; alert(evt.target.name); for(var i=0;i<oCheckBox.length;i++) if(evt.target.name<0) oCheckBox[i].checked=!oCheckBox[i].checked; else if(evt.target.name>0) oCheckBox[i].checked = 1 ;  else oCheckBox[i].checked = 0 ; 

<p id="myFirst"> <input type="button" value="全选" name="1"> <input type="button" value="全不选" name="0"> <input type="button" value="反选" name="-1"> </p> }    第一个函数是执行函数  通过getElementById("myFirst")获取到p标签。通过addEventListener 进行事件监听;将事件绑定在3个input标签的父级p上,实现了事件委托并且在进一步理解了事件委托之后,通过target属性  在点击事件中指向你所点击的对象,能进一步动态获取点击对象的属性,从而通过判断属实对不同点击对象实现不同的操作。  !!!!!!!!!!!用到了 evt.target.name   其中evt是参数;另外,需要知道,如果像<element onclick="function(this)"> 这样添加事件,  该this是指向该Element                                                    2014年11月26日                                                                  
时间: 2024-11-07 09:26:47

javascript笔记(2)(Evernote)的相关文章

JavaScript笔记之Function

一.函数定义 (1)使用function declaration 格式:function functionName(parameters) { function body } 注:此种方式声明的函数作用域是全局的,即在声明之前可以调用 (2)使用function expression 格式:var name = function (parameters) { function body }; 注:与(1)不同,在声明之前不可以调用 (3)使用function constructor() 格式:v

javascript笔记(二)

concat() 连接多个字符串,返回合并后的字符串. 1 var s1="a"; 2 var s2="b"; 3 var s3="c"; 4 5 console.log(s1.concat(s2,s3));//abc concat() 方法的结果等同于:result = s1 + s2 + ... + sN.如果有不是字符串的参数,则它们在连接之前将首先被转换为字符串. 数组中的concat():将参数添加为数组的元素,返回新的数组. 1 va

[Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法

js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+1}" 反射获取函数源代码的功能很强大,使用函数对象的toString方法有严重的局限性.toString方法的局限性ECMAScript标准对函数对象的toString方法的返回结果(即该字符串)并没有任何要求.这意味着不同的js引擎将产生不同的字符串,甚至产生的字符串与该函数并不相关. 如果函数

[Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码

函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式传递给eval函数以达到同样的功能.程序员面临一个选择:应该将代码表示为函数还是字符串?毫无疑问,应该将代码表示为函数.字符串表示代码不够灵活的一个重要原因是:它们不是闭包. 闭包回顾 看下面这个图 js的函数值包含了比调用它们时执行所需要的代码还要多的信息.而且js函数值还在内部存储它们可能会引用

[Effective JavaScript 笔记] 第4条:原始类型优于封闭对象

js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //"number" typeof "s";//"string" typeof null;//"object":ECMAScript把null描述为独特的类型,但返回值却是对象类型,有点困惑. 可以使用Object.prototype.t

JavaScript笔记杂谈篇(啥都有)

二维码缩放比例以43PX的倍数缩放最为标准. NuGet相关管理http://www.cnblogs.com/dudu/archive/2011/07/15/nuget.html 学习笔记: http://kb.cnblogs.com/page/143190/ 动态创建标记,给标记添加样式,class,等等   vardtProductName=$("<dt></dt>",{style:"text-overflow: ellipsis;overflow

JavaScript笔记基础篇(二)

基础篇主要是总结一些工作中遇到的技术问题是如何解决的,应为本人属于刚入行阶段技术并非大神如果笔记中有哪些错误,或者自己的一些想法希望大家多多交流互相学习. 1.ToFixed()函数 今天在做Birt报表时, 要显示一列百分比的数据,但因一些特别的原因,不能使用使用百分比样式,即如果数据是0.9538不能显示成“95.38%”的样式,必须显示成“95.38”. 开始时想使用javascript的内置函数Math.round(),可Math.round()只能显示为整数,而不能保留小数. 再网上搜

学习Javascript笔记1 Javascript对象1

以前学过一段时间Js,现在再看,感觉又像是新知识,说明自己对Js掌握的还不是很好(是很不好,从来就没好过,嘿嘿),在这里,在温习一下 如果各位大哥大姐不幸看到了,,额 额这只是自己的笔记. 在Js里面 面向对象的思想是绝对很重要的,大家如果看过大神的代码,就会知道在Js里面面向对象的思想有多么重要了 JavaScript 中的所有事物都是对象:字符串(String).数字(Number).数组(Array).日期(Date),等等. 在 JavaScript 中,对象是拥有属性和方法的数据. 属

javascript笔记基础总结篇

Created at 2016-09-24 Updated at 2016-10-02 CategoryFront-End TagJavascript 转载请声明出处博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课时 入门基础 知识点: 操作系统就是个应用程序 只要是应用程序都要占用物理内存 浏览器本身也是一个应用程序 浏览器本身只懂得解析 HTML 调用浏览器这个应用程序的一个功能绘制 1.javascript介绍 JavaScript 操作