`
yumo12
  • 浏览: 17867 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

js一起学08:DOM基础——变量、预解析、引用、索引、比较、排序、异常、表达式

    博客分类:
  • js
阅读更多
一、变量
1. 作用域:全局、局部、闭包
2. var a=12;   不加var,会变成全局变量。
3. 全局变量:容易重名,影响性能
4. 局部变量和全局变量重名,局部会屏蔽全局。
5. 给window加东西,是全局的。用途:把封闭空间的东西,变成全局。
(function(){
    window.a=12;
    alert(a);
})()
二、预解析
1. 系统会把所有变量的声明,放在最上面。只是声明到上面,赋值还在原来的位置。
2. 预解析的作用域:不会脱离原本的作用域。函数中,变量放在函数最上面;全局中,放在程序最上面。
3. 作用域无法突破script:why?读取一个script--->预解析--->执行--->读取下一个script
<script>
    var a = 12;
</script>
<script>
    alert(a);
</script>
4. 开始先把变量分配好,避免后面折腾
5. 函数也有预解析
if(num%2==0){
    alert('偶数');
}else{
    alert('奇数');
}
var num=11;
预解析,var num,此处是undefined,所以undefined%2即undefined,为假,所以走else
例子:
aaa();
var aaa=function(){
    alert(1);     //此处报错
}
所以,函数赋值给变量,按照变量的规则走。
三、引用
1. 赋值的时候不会复制,只是两个变量指向同一块内存。任何东西都是存放在内存中。
var arr=[12,4,3];
var arr2=arr;
arr2.push(6);
alert(arr+'\n'+arr2);
2. 如果想解决,自己动手。
var arr1=[12,5,3];
var arr2=[];
for(var i=0; i<arr1.length; i++){
    arr2.push(arr1[i]);
}
arr2.push(6);
alert(arr1+'\n\+arr2);
四、索引
1. charAt(索引):获取某一位置的字符串
2.字符串-->编码: charCodeAt(索引):获取某一位置字符串的编码。
    a->97    b->98    c->99   z->122   =->61   ?->63    1->49    2->50
3.编码-->字符串: string.fromCharCode(编码)
for(var i=1;i<=10000;i++){
     document.write(i+"="+String.fromCharCode(i)+"<br />");
}
4. 中文:4E00~9FA5: 即19968~40869。js中,十六进制用0x
    4E00-->一
for(var i=0X4E00;i<=0X9FA5;i++){
     document.write(String.fromCharCode(i)+" ");
}
5. 使用十六进制表示汉字:alert('\u4E00')---  一        其中“\”是转义符
6. 所有字符串都有编码,字符串比较按照编码大小排列
加密:
oBtn1.onclick=function(){
      var str=oTxt1.value;
      var str2="";
      for(var i=0;i<str.length;i++){
           str2+=String.fromCharCode(str.charCodeAt(i)+5);
      }
      oTxt2.value=str2;
 }
五、 关于比较的问题
(1)字符串比较的是内容,只要文字相同,就相等     a<b    a<z    z>A
(2)数组:属于object类型,是新建的,所以下面的arr1和arr2不相等
    var arr1=[12,5];
    var arr2=[12,5];
    alert(arr1==arr2);   //false
(3)函数:
function aaa(){alert(1);}
function bbb(){alert(1);}
alert(aaa==bbb);  //false;
完整写法:new function();
所以,只要是new出来的,就不相等。
(4)字节长度
字母:1字节       汉字:2个或3个字节    UTF-8格式,占得多   GB2312--2个字节    可以了解头信息
计算字节长度
var str="国际惯例aagdry热狗机哦"
var count=0;
for(var i=0;i<str.length;i++){
    if(str.charCodeAt(i)>=19968&&str.charCodeAt(i)<=40869){
        count+=3;
    }else{
        count++;
    }
}
六、in——检测属性是否存在
var json={a:12, b:5};
alert(a in json);   //报错   因为 不加引号-->变量
alert('c' in json);  //false
注意:必须用字符串,只能用于json,不能用于数组
兼容,但是没啥用
用什么检测呢?
var json={a:12; b:5};
if(json.a){
    alert(1);
}else{
    alert(0);
}
小问题,0是假的,如果恰巧a的值是0呢?
七、sort排序
原理:找到最小的,和第一个交换。交换两个数,中间变量
var arr=[345,33,27,858,5,3];
for(var i=0; i<arr.length;i++){
    for(var j=0; j<arr.length; j++){
        var tmp;
        tmp=arr[i];
        arr[i]=arr[j];
        arr[j]=tmp;
    }
}
alert(arr);
八、异常
(1)什么是异常:程序无法处理的错误
(2)try   catch:防止报错。try中的有问题,catch才会执行
try{
    var oDiv=document.getElementsByTagname('div')[0];
};
catch(e){     // e:错误对象,相当于一个参数
    alert(e);
}
alert(1);
try中的代码执行很慢,且不好调试。所以,js中没啥大用。用于应急。
九、表达式
(1)赋值表达式:alert(a=12);   赋值语句本身也有值
(2)连等:alert(a=b=c=5);
(3)逗号表达式:听最后一个。且不能跟var 一起使用。
逗号的优先级很低。alert((1,3));    if(12,0){ alert(1); }else{ alert(0); }
分享到:
评论

相关推荐

    Java语言基础下载

    文档对象模型(DOM)解析实例 402 DOM对象 404 DOM解析的例子: 406 SAX解析实例 409 DOM4J解析实例 412 JDOM解析实例 413 JAVA操纵XML 实例讲解 414 通过JAVA写数据到XML里面 415 内容总结 418 独立实践 418 第二十...

    JavaScript详解(第2版)

    第1章 JavaScript简介 1 1.1 JavaScript是什么 1 1.2 JavaScript不是什么 2 1.3 JavaScript的用处 3 1.4 JavaScript及其在Web页面中的位置 3 1.5 Ajax是什么 5 1.6 JavaScript是什么样子的 6 1.7 ...

    JavaScript笔记

    JavaScript:定义行为和动作 (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是...

    ActionScript开发人员指南中文版

    响应未捕获的JavaScript异常 使用JavaScript处理运行时事件 第章:在移动应用程序中显示HTML内容 StageWebView对象 内容 导航事件 历史记录 焦点 位图捕获 第章:安全性 FlashPlatform安全概述 安全沙箱 权限控制 限制...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料;本资料仅用于学习。 【课程内容】 第1周 开课介绍 python发展介绍 第一个python程序 变量 字符编码与二进制 字符编码的区别与介绍 用户交互程序 if ...

    PHP和MySQL WEB开发(第4版)

    4.9 比较字符串函数和正则表达式函数 4.10 进一步学习 4.11 下一章 第5章 代码重用与函数编写 5.1 代码重用的好处 5.1.1 成本 5.1.2 可靠性 5.1.3 一致性 5.2 使用require()和include()函数 5.2.1 文件扩展名和...

    PHP和MySQL Web开发第4版pdf以及源码

    4.9 比较字符串函数和正则表达式函数 4.10 进一步学习 4.11 下一章 第5章 代码重用与函数编写 5.1 代码重用的好处 5.1.1 成本 5.1.2 可靠性 5.1.3 一致性 5.2 使用require()和include()函数 5.2.1 文件...

    PHP和MySQL Web开发第4版

    4.9 比较字符串函数和正则表达式函数 4.10 进一步学习 4.11 下一章 第5章 代码重用与函数编写 5.1 代码重用的好处 5.1.1 成本 5.1.2 可靠性 5.1.3 一致性 5.2 使用require()和include()函数 5.2.1 文件...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    精通AngularJS part1

    编辑推荐 《精通AngularJS》指出AngularJS诞生于Google,已用于开发多款Google产品。它是一套JavaScript前端框架,用于开发当下流行的数据驱动的单页面Web应用。其核心特性是:MVC、模块化、自动双向数据绑定...索引337

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    《javaScrip开发技术大全》源代码

    第8章(\代码\第08章) • sample01.htm 使用对象直接量创建自定义对象 • sample02.htm 使用对象直接量创建有方法的自定义对象 • sample03.htm 使用自定义构造函数创建对象 • sample04....

    python入门到高级全栈工程师培训 第3期 附课件代码

    07 三元运算,列表解析,生成器表达式 第19章 01 生成器函数 02 生成器函数的好处 03 母鸡下蛋的传说 04 生成器特性阐释 05 生产者消费者模型 06 第三次作业讲解 第20章 01 上节课回顾 02 装饰器基本理论 03 高...

    js使用小技巧

    取变量类型 typeof($js_libpath) == "undefined" 下拉框 下拉框.options[索引] 下拉框.options.length 查找对象 document.getElementsByName("r1"); document.getElementById(id); 定时 timer=setInterval...

    Python编程入门经典

    3.2.3 字典——以名称索引的分组 数据 36 3.2.4 像列表一样处理字符串 38 3.2.5 特殊类型 39 3.3 序列的其他共有属性 40 3.3.1 引用最后一个元素 40 3.3.2 序列的范围 41 3.3.3 通过附加序列增长列表 41 3.3.4 使用...

    C程序设计语言(第2版·新版中文)

    原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,world”程序就是由本书首次引入的,现在,这一程序已经成为所有程序设计语言入门的第一课。 内容提要 -------------------...

Global site tag (gtag.js) - Google Analytics