一.真假判断 真的:true.非零数字.非空字符串.非空对象 假的:false.数字零.空字符串.空对象.undefined 例: if(0){ alert(1) }else{ alert(2) } 结果是2 二.JSON和for in 例: var obj={aa:1,bb:2,cc:3} var attr='';for (attr in obj){ alert(attr+'='+obj[attr]) } 结果是aa=1 bb=2 cc=3 三.NaN not a number 非数字 与自身…
一.函数返回值1.什么是函数返回值    函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变参(不定参)arguments function sum (a,b) { var result=0; var i=0; for(i=0;i<arguments.length;i++) { result+=arguments(i); } alert(resulet); } sum(12,5,7,5,5…
JavaScript基础笔记集合   JavaScript基础笔记集合   js简介 js是脚本语言.浏览器是逐行的读取代码,而传统编程会在执行前进行编译   js存放的位置 html脚本必须放在<script>.</script>之内. <script>可放置在<head>.<body>里 和css一样,JS可以存放在外面,通过<script src="">来链接 现代浏览器不需要声明type="tex…
原文:javascript立即调用的函数表达式N种写法(第二篇) 上一篇博客我谈到将函数声明转换为函数表达式最常见的一种写法是:通过括号()将匿名函数声明转换为函数表达式即(function(){})(); 言外之意就是还有其他方式,记住:任何消除函数声明和函数表达式间歧义的方法,都可以被解析器正确识别!它们可以分为5类,超过10多种: (function(){})(); //最常见的写法 下文没特殊指明就是指它 (function(){}); //容易与上面的混淆 [function()()]…
函数表达式 一.闭包 概念:闭包是指有权访问另一个函数作用域中变量的函数. function createCompareFun(propertyName) { return function (obj1, obj2) { var a = obj1[propertyName]; var b = obj2[propertyName]; if (a < b) { return -1; } if (a > b) { return 1; } else { return 0; } } } //创建匿名函数…
递归 function factorial(num){ if(num<=1){ return 1; }else { return num * arguments.callee(num-1); } } console.log(factorial(4)); 但是如果代码是在严格模式下开发: "use strict"; function factorial(num){ if(num<=1){ return 1; }else { return num * arguments.cal…
1.函数基础 1.1 函数的基本概念 函数是一段JavaScript代码,只被定义一次,但是可以被调用或者执行许多次.函数是一种对象,可以设置属性,或调用方法. 函数中的参数分为实参和形参.其中,形参在函数体中类似局部变量,函数调用会为形参提供实参的值.函数使用实参的值来计算返回值,成为该函数调用表达式的值.除了实参外,函数每次调用都会有一个this的值. 如果函数挂载在对象的属性上则该函数被称为对象的方法,当通过该对象调用函数时,该对象就是此时的上下文,也就是该函数的this. 用于初始化一个…
首先这是js的一种函数调用写法,叫立即执行函数表达式(IIFE,即immediately-invoked function expression).顾名思义IIFE可以让你的函数立即得到执行(废话). 一般来说,IIFE有以下几种用途: 1. 创建只使用一次的函数,并立即执行它. 2. 创建闭包,保存状态,隔离作用域. 3. 作为独立模块存在(例子如jQuery),防止命名冲突,命名空间注入(模块解耦). 1. 创建只使用一次的函数,并立即执行它 创建只使用一次的函数比较好理解,在需要调用函数的…
引用类型 引用类型的值(对象)是引用类型的一个实例. 一.Object类型 创建Object实例: //方法一:通过new操作符创建 var a = new Object(); a.neme = "Tom"; a.age = 3; //方法二:通过对象字面量创建,注意:此时的name什么的不是局部变量,'{}'相当于执行了new操作呢..... var b = { name: "Jerry", age: 3 }; var c = {}; //与new Object(…
函数的基础 函数: 把实现相同功能的代码放到一个函数体中,当想实现这个功能时,直接执行这个函数即可:减少了的冗余:高内聚,低耦合--> 函数的封装: 函数:引用数据类型: var a = 10; function : 关键字:声明定义一个函数: function 函数名(){} function : 功能:方法: 函数分为定义和执行: function fn1() { console.log(100); } 函数执行: 让里面的代码运行: fn1(); console.log(200); fun…
1.函数表达式与函数声明的区别 函数声明有“提升”(hoisting)的特性,而函数表达式没有.也就是说,函数声明会在加载代码时被预先加载到context中,而函数表达式只有在执行表达式语句时才会被加载 2.闭包 有权访问另一个函数作用域中的变量的函数.闭包可以访问另一个作用域中的变量,因此闭包得到的变量值是最终值,而不是该变量在某一时刻的值,有一个很经典的例子: function createFuns(){ var result = new Array(); for(var i = 0;i <…
JavaScript中,定义函数的方式如下: function abs(x) { if (x >= 0) { return x; } else { return -x; } } 上述abs()函数的定义如下: function指出这是一个函数定义: abs是函数的名称: (x)括号内列出函数的参数,多个参数以,分隔: { ... }之间的代码是函数体,可以包含若干语句,甚至可以没有任何语句. 如果没有return语句,函数执行完毕后也会返回结果,只是结果为undefined. 第二种定义函数的方…
错误处理与测试 一.错误处理 一)try-catch语句 function atest() { try { //可能发生错误的代码 return 0; } catch (error) { //错误处理程序 console.log(error.message); return 1; } finally { //无论如何都会执行的,函数最后返回2 return 2; } } 错误类型: 1)Error:错误基类,其他错误类型都由该类继承. 2)EvalError:没有把eval()当函数调用时,会发…
简单来说,回调函数:也就是将要执行的函数. 回调函数具体的定义为:函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A.我们就说函数A叫做回调函数.如果没有名称(函数表达式),就叫做匿名回调函数. (1)回调函数的定义 function add(x,y,fn) { /* * this.x this.y:属于add类的全局变量的定义 * */ ; ; if(fn){ /*判断是否有回调函数,有的话执行传入的函数(传入参数)*/ fn(this.x+this.y); } } (2…
基本概念 一.语法 一)区分大小写 二)标识符 书写规则同Java 三)注释 略 四)严格模式 1.在整个脚本中启用严格模式:在顶部添加 "use strict" 2.指定函数在严格模式下执行: function doSth() { "use strict" //函数体 } 二.变量 ECMAScript变量类型是松散类型,所谓松散类型就是可以保存任何类型的数据. //定义变量 var msg; //注意由var定义的变量是局部变量,如果变量在函数中函数退出后变量就…
javascript运算符 一.运算符和操作数的组合就称为表达式. 二.javascript运算符 (一) 算术运算符 + - * / % var++ ++var var-- --var A. + (1) 用于数值的运算 (2) 用于字符串的连接 *************************** 任何的数据类型和字符串相加都是等于相加以后的字符串 ************************* B. % (1)用于取余数,判断奇数或者是偶数 (2)一般不用于小数,因为结果不确定. C.…
ES6 标准新增了一种新的函数: Arrow Function(箭头函数). x => x *x 上面的箭头相当于: function (x){ return x*x; } 箭头函数相当于匿名函数,并且简化了函数定义.一种像上面的,只包含一个表达式, 连{ ... }和return都省略掉了.还有一种可以包含多条语句,这时候就不能省略{ ... }和return: x =>{ if(x > 0){ return x * x; }else{ return -x *x; } } 如果参数不是…
函数声明 JavaScript中声明函数的方式:(无需声明返回值类型) function add(i1, i2) {             return i1 + i2;//如果不写return返回的是undefined         } int add(int i1,int i2)//C#写法 不需要声明返回值类型.参数类型.函数定义以function开头.         var r = add(1, 2);         alert(r);         r = add("你好&q…
1.==和===的区别(!=和!==是相反的比较) 它们采用了同一性的两个不同定义.==是相等性,===是等同性. ①“===”进行两个值的比较 两个值的类型不同,就不相等 两个值是数字,并且值相同,除非其中一个或者两个都是NaN,否则他们是相同的.NaN和NaN也是不同的,判断一个值是否是NaN,可以使用全局函数isNaN(). 两个值是字符串:如果长度不相等就不相同,如果长度相同并且每一个索引的字符也相同就认为两个字符串相同. 两个值是布尔值,同为true或者false就认为相同 两个值是对…
/** * Created by Administrator on 2016/12/26. */ /* var box; alert( typeof box); box是Undefined类型,值是undefined,类型返回的字符串undefined var box=true; alert( typeof box); box是Boolean类型,值是true,类型返回的字符串boolean var box=''; alert( typeof box); //box是String类型,值是'',…
一.Javascript概述(知道) a.一种基于对象和事件驱动的脚本语言 b.作用: 给页面添加动态效果 c.历史: 原名叫做livescript.W3c组织开发的标准叫ECMAscipt. d.特点: 1). 弱势语言 2). 由浏览器直接解析执行.(函数不能直接执行) 3). 是一个解释性语言 4). 交互性(它可以做的就是信息的动态交互) 5). 安全性(不允许直接访问本地硬盘) 6). 跨平台性(只要是可以解释Js的浏览器都可以执行,和平台无关 e . javascript和java的…
表单脚本 一.表单基础知识 JavaScript中表单对应的是HTMLFormElement类型,该类型继承自HTMLElement类型. 通过document.forms可以获得所有表单元素,通过数值索引和name特性可以获得其中特定的表单. 一)提交表单 单击提交按钮或者图像按钮就可以提交表单. 三种方式: <!--通用提交按钮--> <input type='submit' value='submit value'> <!--自定义提交按钮--> <butt…
事件 一.事件流 事件流描述的是从页面中接收事件的顺序. 一)事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点. 如:div------>body------->html 二)事件捕获 Netscape的事件流叫做事件捕获,与事件冒泡的顺序相反. 虽然事件捕获是 Netscape Communicator 唯一支持的事件流模型,但 IE9. Safari. Chrome. Opera和 Firefox 目前也都支持这种事件流模型.尽管“DO…
DOM扩展 一.选择符API Selectors API是由W3C发起制定的一个标准,致力于让浏览器原生支持CSS查询. 一)querySelector() 在Document和Element类型实例中都可以调用它,在Element类型实例中调用时, 只在该元素的后代元素中查找,该方法接收一个CSS选择符号. //取得 body 元素 var body = document.querySelector("body"); //取得 ID 为"myDiv"的元素 var…
DOM DOM可以将任何HTML或者XML文档描述成一个由多层节点构成的结构. 一.节点层次 一)Node类型 DOM1定义了一个Node接口,该接口将由DOM中所有节点类型实现. 每一个节点都有一个nodeType属性,用于表明节点类型.节点类型由在Node类型中定义的12个数值常量来表示.  Node.ELEMENT_NODE(1): Node.ATTRIBUTE_NODE(2): Node.TEXT_NODE(3): Node.CDATA_SECTION_NODE(4): Nod…
JS式面向对象 一.理解对象 一)属性类型 ECMA-262 第 5 版在定义只有内部才用的特性(attribute)时,描述了属性(property)的各种特征. ECMA-262 定义这些特性是为了实现 JavaScript 引擎用的,因此在 JavaScript 中不能直接访问它们. 1.数据属性 数据属性包含一个数据值的位置.在这个位置可以读取和写入值.数据属性有 4 个描述其行为的特性.  [[Configurable]]:表示能否通过 delete 删除属性从而重新定义属性,能否修…
函数第一节: 1.函数的概念及作用     函数是由事件驱动的或者当他被调用时可执行的可重复使用的代码块.   具备一点功能的代码段,代码段来实现具体的功能.要想实现一个函数的功能需要对函数进行调用.每写完一个函数就需要在使用时进行调用   2.函数的好处    重复使用     忽略细节     选择执行   3.函数的定义    通过关键字function声明,      function fn(){}      其中:         function---为声明函数的关键字,指出这是一个…
JavaScript笔记1.JavaScript关键词2.JavaScript标识符 必须以字母,下划线(_)或美元符($)开始. 后续的字符可以是字母.数字.下划线或者美元符 (数字是不允许作为首字符出现的,以便JavaScript可以轻易区分开标识符和数字).3.JavaScript数据类型 JavaScript有多种数据类型:数字,字符串,数组,对象等等:4.JavaScript对大小写敏感 5.JavaScript字符集JavaScript使用UNicode字符集.Unicode覆盖了所…
一.引言 前面我们讨论了函数的一些基本概念,因为函数在任何一门语言之中都是很重要所以还是要好好学.昨天打开博客的时候看到有人私信我的JavaScript写错了,我定睛一看果然写错了.对此我表示很抱歉,希望大家能够看得时候多喷我两句就忘了这件事吧. 二.导入 今天我们要讨论一下有关于对象的内容,我们首先要接触的就是一些内置的对象. 三.重点内容 ① 对象: W3C上面写道:“属性的无序集合,每个属性存放一个原始值.对象或函数.因为在JS当中没有真正类所以把类定义描述为对象的配方.我们也把对象定义叫…
概要 这里的迭代函数指的是对数组对象的操作方法,js数组共有五个迭代函数:every.fifter.forEach.map.some. 1.every every方法,返回值为Boolean类型,true表示数组中所有元素都满足条件,false表示数组中至少有一个不满足条件,代码如下: var numbers = [1,2,3,4,5,4,3,2,1]; numbers.every(function(item,index,array){ return item > 2; }) 输出:false…