[JS] javascript基础语法
2017-05-08 11:03
387 查看
1.javascript是什么 js是具有面向对象能力的,解释性的程序设计语言. 2.js的类型 [基本类型]:string number boolean [复合类型]:对象(对象,函数,数组) [无类型]:null undefiend 3.typeof 语法:string typeof (变量名) 或者 string typeof 变量名 作用:返回这个变量的类型 4.块级作用域 js没有块级作用域的概念.if while等内声明的变量都是和外面声明的变量是同一作用域的. 5.运算符 ==和!=:是判断2个结果是否相等 in:属性是否属于某个对象 instanceof:变量是否属于某个类 add instanceof Function 6.数字类型 js中的数字类型都是浮点数.1===1.00 8进制:0开头 16进制:0x开头 7.NaN Infinity IsNaN IsFinite NaN:Not a Number alert(0/0) Infinity:无限的 alert(0.1/0) boolean IsNaN(number): 判断不是数字 boolean IsFinite(number): 判断数字是不是有限的 8.string类型方法 string substring(startindex,endindex):左边取的到,右边取不到 string substr(startindex,length): 9.包装类型 包装类型和基本类型的用法一直,是对基本类型的扩充. Number String Boolean 10.函数/匿名函数 函数是js的灵魂,匿名函数就是将函数赋给一个变量. 函数:function 函数名(参数){方法体} 匿名函数:var 变量名 = function(参数){方法体} 11.变量名提升/函数名提升 函数中是局部作用域,在局部作用域内使用var声明的变量都会隐式的前置. 如: var i = 1; function test(){ alert(i); var i = 2; //此处声明的i相当于在局部作用域最上面声明的.所以alert(i)的i为undefined. alert(i); } var func = function(){return 1}; function test(){ func(); var func = function(){return 2}; //此处和上例相同,因为是函数调用的原因.此处会直接报错.执行不下去. func(); } 12.动态函数 new Function(arg1,arg2...argN,body):会创建一个函数并返回. 13.arguments 函数的内部会有一个默认的arguments对象,不是数组. typeof arguments = Object. arguments instanceof Array = false 14.创建对象 在js中没有类的概念,但是函数可以作为构造函数来使用.对象实际就是键值对. var Person = function(){ this.ID = 1; this.Name = '2'; } var p1 = new Person(); //创建了一个Person对象,有属性ID和Name 原理: new 关键字:创建一个object对象.将函数内的this指向这个对象. 构造函数:执行构造函数为this扩展成员.执行完返回this对象. 15.对象的字面值 var o = { Id:1 ,Name:'2' } 可以随意的添加成员o.Age = 3;删除成员:delete o.Age;调用成员o['Age'](); 16.数组的创建 2种方式创建: var arr = new Array() var arr = [] 一般给数组赋值都是: arr[arr.length] = value; 17.null undefined null表示空,没有引用对象. undefined表示未定义,不存在.有3种情况: a.未定义的属性 b.未定义的变量 c.返回只有return 18.Error 相当于C#中的Exception对象 在js中 throw new Error('此处有错误'); 常用:throw {msg:'异常',date:new Date()} 19.常用函数 编码函数: encodeURI:对字符串编码,让中文可以再网络中正常传输 推荐使用 decodeURI:对字符串解码. 推荐使用 escape:编码 unescape:解码 编码成16进制. 20.扩展方法 扩展方法的本质就是继承. 构造函数都有prototype(原型)属性.通过构造函数new的对象实际都是派生自prototype. 注意:所有的函数都继承自Function.间接继承Object. Function.prototype.say = function(){ //给所有函数扩展了一个say方法. alert('每个函数都能调用'); //函数都派生自Function的prototype属性 } var func = function(){}; func.say(); 21.继承 重点 (var obj = new Object(); var str = new String(); var func = new Function(); 所以Object,String,Function都为构造函数.) //继承方式1: Object.prototype.jc = function(objBase){ var F = function(){}; F.prototype = objBase; return new F(); } //继承方式2: Object.prototype.jc = function(objBase){ this.prototype = objBase; } var F = function(){}; F.jc(objBase); var func = new F(); //继承方式3:(多继承) Object.prototype.jc = function () {
var arr = arguments;
for (var i = 0; i < arr.length; i++) {
for (var k in arr[i]) {
this.prototype[k] = arr[i][k];
}
}
}; var F = function(){}; F.jc({id:1},{age:2},{say:function(){ alert(this.id + ":"+ this.age); }}) var fu = new F(); fu.say(); 22.闭包 闭包就是 将高级作用域内的变量提供给低级作用域访问. var P = function () { var i = 1; return function(){ alert(i); } }; var p = new P(); p(); 最外面的p能调用P函数里面的i; 23.函数 函数在js中有4种身份 [函数]:var func = function(){}; //函数与方法的区别主要在函数内this指的是什么. [方法]:var o = {}; o.say = function(){}; [构造函数]:var P = function(){}; var o = new P(); [apply|call]:函数名.apply(对象,[参数数组]) 函数名.call(对象,参数列表); 24.DOM DOM操作就是js操作html标签. DOM操作: 创建节点:Element document.createElement(tagName) 获得节点: 根据id,className,tagName Element document.getElementByXX(XXValue) 获得子节点: 父节点.childNodes
父节点.firstChild
父节点.lastChild 获得兄弟节点: 当前节点.nextSibling 添加节点: 父节点.appendChild() 删除节点 父节点.removeChild() 设置节点属性 DOM.setAttribute('属性名','属性值') DOM.getAttribute('属性名') 常用属性:nodeName(大写标签名),nodeType(1标签 2属性 3文本),nodeValue(文本节点的文本) 设置节点文本 元素节点.innerText 文本节点.nodeValue input节点.value DOM树:注意的是文本节点是一个单独的节点. 25.setTimeout,setInterval本质还是单线程的.js是以事件方式驱动的 26.js压缩: 方式一: javascript compressor 在线压缩工具 地址:http://dean.edwards.name/packer/ 方式二: JSA 压缩,混淆,分析的工具 下载地址: 方式三: closure compiler 谷歌的js优化器.非常智能. 下载地址:
var arr = arguments;
for (var i = 0; i < arr.length; i++) {
for (var k in arr[i]) {
this.prototype[k] = arr[i][k];
}
}
}; var F = function(){}; F.jc({id:1},{age:2},{say:function(){ alert(this.id + ":"+ this.age); }}) var fu = new F(); fu.say(); 22.闭包 闭包就是 将高级作用域内的变量提供给低级作用域访问. var P = function () { var i = 1; return function(){ alert(i); } }; var p = new P(); p(); 最外面的p能调用P函数里面的i; 23.函数 函数在js中有4种身份 [函数]:var func = function(){}; //函数与方法的区别主要在函数内this指的是什么. [方法]:var o = {}; o.say = function(){}; [构造函数]:var P = function(){}; var o = new P(); [apply|call]:函数名.apply(对象,[参数数组]) 函数名.call(对象,参数列表); 24.DOM DOM操作就是js操作html标签. DOM操作: 创建节点:Element document.createElement(tagName) 获得节点: 根据id,className,tagName Element document.getElementByXX(XXValue) 获得子节点: 父节点.childNodes
父节点.firstChild
父节点.lastChild 获得兄弟节点: 当前节点.nextSibling 添加节点: 父节点.appendChild() 删除节点 父节点.removeChild() 设置节点属性 DOM.setAttribute('属性名','属性值') DOM.getAttribute('属性名') 常用属性:nodeName(大写标签名),nodeType(1标签 2属性 3文本),nodeValue(文本节点的文本) 设置节点文本 元素节点.innerText 文本节点.nodeValue input节点.value DOM树:注意的是文本节点是一个单独的节点. 25.setTimeout,setInterval本质还是单线程的.js是以事件方式驱动的 26.js压缩: 方式一: javascript compressor 在线压缩工具 地址:http://dean.edwards.name/packer/ 方式二: JSA 压缩,混淆,分析的工具 下载地址: 方式三: closure compiler 谷歌的js优化器.非常智能. 下载地址:
相关文章推荐
- javascript 语法基础 想学习js的朋友可以看看
- node.js/javascript 语法基础笔记
- javascript-第一节-js基础语法
- cocos2d JS-(JavaScript) 基础语法运算符
- Javascript进阶篇——(JS基础语法)笔记整理
- JavaScript学习笔记 - 进阶篇(1)- JS基础语法
- JS JavaScript基础语法学习
- cocos2d JS-(JavaScript) 基础语法间的函数方法相互调用
- JavaScript-1-1:JS基础语法,流程控制等
- js基础--javascript基础概念之语法
- JavaScript基础、语法(JS)
- JavaScript基础(基本语法:变量、语句、数组、函数、对象、全局方法以及js与java不同,js与html关联)
- JavaScript基础语法之js表达式
- JavaScript高级程序设计(第3版)学习笔记2 js基础语法
- javascript 语法基础 想学习js的朋友可以看看
- javascript 语法基础 想学习js的朋友可以看看
- [JS] javascript基础语法
- javascript复习笔记(一)js基础,基本语法,数据类型,控制流程
- JavaScript基础[用途、基本使用、批量产生对像、对象调用、对批量生产对象进行验证、语法的灵活性、js的内置对象]