20160301--Js01
来源:互联网 发布:catia v5软件有多大 编辑:程序博客网 时间:2024/06/06 05:04
<script defer="defer"> --解析顺序 引入js时候-延迟执行
typeof a ----显示数据类型
arr.shift();不能传值 删除头部 返回移除元素
arr.unshift(,,);从头部插入,返回新长度
arr.splice(起始位置,截取数量,追加的元素)--初始为1
arr.slice(2,4) 截取位置,左闭右开,不操作数组本身
arr1.concat(arr2) 合并,不操作数组本身
arr.join('-'); 每个元素之间添加值,不操作数组本身
arr.sort(); 正序排序--按照字符串(多位比较第一个)
var arr=[1,2,3,[4,[5,[6]]]];//自己实现Array each方法 遍历多维数组
Array.prototype.each=function(fn){
try{
//遍历数组的每一项//计数器 记录当前遍历的元素位置
this.i || (this.i=0);
//严谨判断什么时候取走each核心方法
//当数组的长度大于0的时候&&传递的参数必须为函数
if(this.length>0 && fn.constructor == Function){
//循环遍历数组的每一项
while(this.i<this.length){ //while 循环的范围
//获取数组的每一项
var e = this[this.i];
//如果当前元素获取到了,并且当前元素是一个数组
if(e&&e.constructor == Array){
//直接做递归操作
e.each(fn);
}else{
//如果不是数组(那就是一个单个元素)
//目的为了把数组的当前元素传递给fn函数,并让函数执行
//fn.apply(e,[e]);
fn.call(e,e);
}
this.i++ ;
}
this.i = null;//释放内存,垃圾回收机制回收变量
}
}catch(ex){ //do something}
return this;
}
arr.each(function(item){alert(item);});
Object var obj = new Object();
增加 obj.属性=""; obj["属性"]="值";
删除 delete obj.属性;
遍历for(var att in obj){alert(att属性+obj[att]值);}
obj.hasOwnProperty("属性");查看属性是否存在boolean
toString();返回字符串表示 valueOf();对象的字符串、数值或布尔表示
alert(i);//弹出6
}
//--没有块级作用域,可以访问if中的变量,for/if只是起到控制作用
//使用var关键字声明变量时,变量将添加到距离最近的可用环境中,对于函数而言,
//这个最近的环境就是函数的局部环境。(如果没添加var关键字,则添加到父环境了)
Closure闭包--做private,不会被回收
function f(x){
var temp = x;
return function(x){
temp+=x;
alert(temp);
}
}
var a = f(50);
a(5);//----alert(55);
a(10);//----alert(65);
a(20);//----alert(85);
//-----------------------------------
window.onload = function() {
alert(p1==p2);
};
//第一个alert(1,1,true)--第二个alert(false);
1、/*function aaa(){
alert(1);
}
var p1=aaa();
var p2=aaa();
*/
2、var p1=function aaa(){
alert(1);
}
var p2=function aaa(){
alert(1);
}
typeof a ----显示数据类型
var arr ={}
arr.push(,,); 往数组后追加元素 返回新数组长度
arr.pop();不能传值 删除数组最后一个元素 返回移除的元素arr.shift();不能传值 删除头部 返回移除元素
arr.unshift(,,);从头部插入,返回新长度
arr.splice(起始位置,截取数量,追加的元素)--初始为1
arr.slice(2,4) 截取位置,左闭右开,不操作数组本身
arr1.concat(arr2) 合并,不操作数组本身
arr.join('-'); 每个元素之间添加值,不操作数组本身
arr.sort(); 正序排序--按照字符串(多位比较第一个)
arr.reverse();直接颠倒
var arr=[1,2,3,[4,[5,[6]]]];//自己实现Array each方法 遍历多维数组
Array.prototype.each=function(fn){
try{
//遍历数组的每一项//计数器 记录当前遍历的元素位置
this.i || (this.i=0);
//严谨判断什么时候取走each核心方法
//当数组的长度大于0的时候&&传递的参数必须为函数
if(this.length>0 && fn.constructor == Function){
//循环遍历数组的每一项
while(this.i<this.length){ //while 循环的范围
//获取数组的每一项
var e = this[this.i];
//如果当前元素获取到了,并且当前元素是一个数组
if(e&&e.constructor == Array){
//直接做递归操作
e.each(fn);
}else{
//如果不是数组(那就是一个单个元素)
//目的为了把数组的当前元素传递给fn函数,并让函数执行
//fn.apply(e,[e]);
fn.call(e,e);
}
this.i++ ;
}
this.i = null;//释放内存,垃圾回收机制回收变量
}
}catch(ex){ //do something}
return this;
}
arr.each(function(item){alert(item);});
Object var obj = new Object();
增加 obj.属性=""; obj["属性"]="值";
删除 delete obj.属性;
遍历for(var att in obj){alert(att属性+obj[att]值);}
obj.hasOwnProperty("属性");查看属性是否存在boolean
toString();返回字符串表示 valueOf();对象的字符串、数值或布尔表示
function test(){
for(var i = 1; i<=5; i++ ){}alert(i);//弹出6
}
//--没有块级作用域,可以访问if中的变量,for/if只是起到控制作用
//使用var关键字声明变量时,变量将添加到距离最近的可用环境中,对于函数而言,
//这个最近的环境就是函数的局部环境。(如果没添加var关键字,则添加到父环境了)
Closure闭包--做private,不会被回收
function f(x){
var temp = x;
return function(x){
temp+=x;
alert(temp);
}
}
var a = f(50);
a(5);//----alert(55);
a(10);//----alert(65);
a(20);//----alert(85);
//-----------------------------------
window.onload = function() {
alert(p1==p2);
};
//第一个alert(1,1,true)--第二个alert(false);
1、/*function aaa(){
alert(1);
}
var p1=aaa();
var p2=aaa();
*/
2、var p1=function aaa(){
alert(1);
}
var p2=function aaa(){
alert(1);
}
//------js 模拟 Map
function Map(){
//private
var obj={};//空的对象容器,承装键值对
//put方法
this.put=function(key,value){
obj[key]=value;//把键值对绑定到obj对象上
}
//size 方法,获得map容器的个数
this.size = function(){
var count = 0;
for(var attr in obj){
count++ ;
}
return count;
}
//get方法
this.get = function(key){
if(obj[key] || obj[key] === 0 || obj[key] ===false){
return obj[key];
}else{
return null;
}
}
//remove方法
this.remove = function(key){
if(obj[key] || obj[key] === 0 || obj[key] ===false){
delete obj[key];
}
}
}
0 0
- 20160301--Js01
- JS01-第一个js程序
- JS01实现基本选项卡
- 日经春秋 20160301
- JAVA学习20160301
- 20160301 常用AFX函数
- 20160301 C#基础易忘记小知识点
- 20160301 大端小端代码实例
- C++面向对象编程分享----20160301_李楚煌
- 天声人語 20160301 衆院定数是正で汗を流せ
- 20160301 第1章 您的第一个MFC应用程序(来自《MFC Windows 程序设计(第2版)》)
- tweak的例子
- Android中数据持久化的三种方式
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
- 微信开放平台注册说明
- Android Stuido Ndk-Jni 开发(四):Jni打包及引用aar
- 20160301--Js01
- Android代码内存优化建议-Java官方篇
- Python高级爬虫(三):数据存储以及多线程
- question_004-JAVA之class-static
- linux下c++ 多线程的应用示例
- 3. Longest Substring Without Repeating Characters
- Windows下mysql忘记root密码的解决方法
- 手机充电原理分析及问题总结
- HDU 1257 最少拦截系统(DP)