对 JS 进一步认识:

(function(){

alert(1);

})()

函数自执行 闭包;

window.onload=function(){
       var oDiv=document.getElementById(‘div1‘);
       var aDiv=oDiv.getElementsByTagName(‘div‘);
       var aInput=oDiv.getElementsByTagName(‘input‘);
       for(var i=0;i<aInput.length;i++){
          (function(index){
               aInput[i].onclick=function(){
               for(var i=0;i<aInput.length;i++){
                    aDiv[i].style.display=‘none‘;
                    aInput[i].className=‘‘;
                    }
               this.className=‘active‘;
               aDiv[index].style.display=‘block‘
               } 
          })(i)
            }
        }

选项卡 封闭空间案例  函数自执行  舍弃 索引值  最完美方案

好处: 省了一个函数名

作用:1避免变量冲突

2解决问题,索引值

i的问题:

1事件里面的i 不能重用

2 定时器里面的i;

封闭空间核心  函数每执行一次都是复制一份包括里面的参数

---------------------------------------------------------------------------------------------

非行间样式

非行间样式只读不能修改

-----------------------------------

关于设置样式

cssText : 以文本的形式设置样式。

既能读取 行间样式,也能设置

with()  没用 ; 乱

设置样式:

1 class

2 obj.style[name]=value;

-------------------------------------------------------------------------------------------

字符串

str.charAt() 没找到 就是一个空  参数(索引值)

length;

indexof();

str.indexof(); 找东西 返回值是索引下标; 没找到返回值是-1;

lastIndexof(); 从后往前找 索引 找的方向不一样 返回的索引还是一样的 没找到也是-1

substring () 截取字符串  (开始位置  ,  结束位置 ) 不包括最后一位

如果不写后面一个参数  就是从第一个位置到最后 全部截取;

split(); 切分   切分字符串  (切得规则)  返回一个数组

大小写 :

toUpperCase(); 大写

toLowerCase(); 小写   str.toLowerCase(); 格式

字符串比较:

字典比较

1英文比较  字典序

2数字比较  最小0 最大9 (只比较第一位)

3中文比较  中文没有可比性   比较的是计算机内测编码

-----------------------------------------------------

判断浏览器类型

userAgent ----用户代

window.navigator.userAgent //检测浏览器版

------------------------------------------------------------------------

数组:

var arr=[] ; 推荐  性能高

var arr=new Array(8)    \\全写 如果只有一个参数代表 数组长度是8

arr.length;

arr.push(); 数据保存在数组的最后一位

arr.pop();  删除数组的最后一位数据  会返回删除的数据

arr.unshift(); 数据保存数组的第一位

arr.shift();删除数组的第一位数据  会返回删除的数据

万能的方法 :添加  删除 修改

arr.splice(); 非常重要  (起始位置,删除的个数,元素1,元素2,元素3,...)

删除:

arr.splice(beginIndex,N)

添加:

arr.splice(beginIndex,0,元素1.......)

修改:

arr.splice(beginIndex,N,元素1.......)

注意:splice 先删除 后添加;

reverse() 数组翻转   1,2,3,4,5 变成 5,4,3,2,1

数组链接:

var ar3=arr1.concat(arr2);  返回的是一个新数组 相连 可以传多个参数  可以传一个字符串会做隐士类型转换;

join();  (链接的一个规则) 返回一个字符串

字符串转数组  split;

数组转字符串  join;

length 数组的length可以修改 也可以获取

删除组数

1  length=0;

2  pop()/shift(); 用whil 循环

3 splic(0,arr.length)

arr.sort(); (比较函数)

function(n1,n2){

return   n1-n2;

}

-----------------------------------------------------------------------------------------------

argunments :数组  存参数的   (实参) 只有函数才有

function show(a,b){  // 形式参数  与arguments 的值 没关系

alert(arguments.length)

}

arguments.callee();   // 递归

----------------------------------------------------------------------------------------------

json :  只能用 for in 不能用for循环

arr 和json 区别:

arr                        |         json

|

1          length                    |       没有length

2   下标属性是数字索引        |     下标 是字符串

3       有2个循环for for in    |       只有 for in

4      数组是有序的              |           无序

时间: 2024-11-15 13:05:17

对 JS 进一步认识:的相关文章

js:进一步关闭(范围:下一个)

function fn1(){ //创建一个数组 var fns = new Array(); //i这个变量是保存在fn1这个作用域中 for(var i=0;i<10;i++){ //数组中的值是一组函数 fns[i] = function(){ return i; } } return fns; } var fs = fn1(); for(var i=0;i<fs.length;i++){ //此时通过闭包来调用全部的函数,当要输出i的时候会在它所在的定义域(fn1)中找到它, //此时

网页定位点击事件js响应函数教程(Chrome)

一.背景说明 在前端页面调试或者渗透测试(尤其是XSS)时,我们经常想定位js函数位置:比如点击了某个位置弹出了一个对话框,这是哪个文件的哪个js函数在响应. 本文以Chrome浏览器定位点击事件响应函数为例,介绍定位方法. 记得Firebug原来也可以类似操作的,但现在Firefox把Firebug整合到开发工具中了但开发工具又没见有这功能,"国产浏览器"们也不见有,现在感觉Chrome能定位了. 二.定位演示 2.1 定位调用的函数 我们点击图中"test"行,

WEB前端开发学习小结

[引言] 在经过了将近六个月的学习时间终于对B/S的学习有了一定认识,在这段时间里可以说自己的收获非常的多,从一 个对web开发没有任何基础的小小小菜鸟变为了一个菜鸟,虽然自己现在还是一个菜鸟,但是自己和半年前的自己对 比进步还是巨大的,因为现在的自己至少到了知道"是什么?"的阶段,对已项目中用到的知识还是比较熟悉的(宏 观),在这个过程中也会因为一个错误困扰自己很长时间,因为那是自己对于挑错还是非常不熟悉的,像哪些辅助工 具firebug等都不知道是什么,而现在运用的还算是比较灵活,

angularjs实际工程目录结构

angularjs是一个优秀的前端框架,主要核心有双向绑定.依赖注入.MVC等,不再赘述. 下面是实际开发项目中的目录结构示例: 我的项目根目录是helloangular,下面所使用的各层级目录均创建在根目录下,实际上也可以在根目录下创建名为"app"的目录,各层级目录放在"app"目录下,根目录下再放置其他公共文件.配置文件等. index.html是项目的入口文件,代码如下: 入口html中引入需要的js.css等资源,并声明应用(ng-app),在需要插入视图

WebAssembly:随风潜入夜

What? WebAssembly 是一种二进制格式的类汇编代码,可以被浏览器加载和并进一步编译成可执行的机器码,从而在客户端运行.它还可以作为高级语言的编译目标,理论上任何语言都可以编译为 WebAssembly. 我们知道汇编语言就是机器码的一种直译版本,它是一套指令的集合,必须与特定机器匹配.WebAssembly 虽然也可以看成汇编代码,但有一点不同,它是与特定机器无关的,它的指令被称为虚拟指令,并非真正的处理器指令.也就是说 WebAssembly 是一个平台无关的通用编译目标,可以运

(转)邮箱钓鱼攻击分析实例

(转载自: http://www.rising.com.cn/newsletter/news/2013-06-26/13965.html    2013-06-26 ) 钓鱼攻击是目前互联网环境中最为常见的攻击方式之一,很多不法分子通过网站.邮箱.短信以及打电话等方式,骗取网民的敏感信息或钱财,而这些欺骗手段始终没有一个根本的解决方法.近日,笔者在浏览网站时就收到了一封钓鱼攻击邮件,在对该电子邮件分析过程中,发现有很多用户被该钓鱼攻击骗取了敏感信息,甚至可能对有些用户造成了经济损失.所以在这里,

jquery源码分析之一前言篇

1.问:jquery源码分析的版本是什么? 答:v3.2.1 2.问:为什么要分析jquery源码? 答:javascript是一切js框架的基础,jquery.es6.vue.angular.react.redux,node.只有完全掌握原生js,你才能快速理解各种js框架,也是你达到高级程序员的必经之路.记得我刚来东航电商工作的时候,一位高级程序员跟我说过,中级前端就是往上走,学习掌握各种流行js框架,但是想往高级走,我们得往下走,对于底层语言的熟悉,懂得它的思想才能在程序领悟拥有创造力,只

解决前端页面闪烁问题(转载)

修改 Class 而不是 Style 我在不久前做过一个导航栏,要求其滚动到屏幕顶端后固定.很常见.开始的时候没问题,很快就可以搞定. nav { position: absolute; top: 60px; } var scroll=0; var nav=$("nav"); var navST=60; //该元素距离网页顶端60px $(window).scroll(function(){ if($(document).scrollTop()>navST &&

Html5 学习系列(四)文件操作API

原文:Html5 学习系列(四)文件操作API 引言 在之前我们操作本地文件都是使用flash.silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很难进行跨平台.或者跨浏览器.跨设备等情况下实现统一的表现,从另外一个角度来说就是让我们的web应用依赖了第三方的插件,而不是很独立,不够通用.在HTML5标准中,默认提供了操作文件的API让这一切直接标准化.有了操作文件的API,让我们的Web应用可以很轻松的通过JS来控制文件的读取.写入.文件夹.文件等一系列的操作,