`
yumo12
  • 浏览: 18516 次
  • 性别: 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); }
分享到:
评论

相关推荐

    Web设计资料js正则表达式

    而"紫光软件软件开发红皮书——JS2.pdf"则可能深入讲解了JavaScript的高级特性和实践应用,包括正则表达式的使用。 综上所述,Web设计中的JS和正则表达式是构建动态、交互性网页的关键技能。理解并熟练运用这些知识...

    js基础测验简答题解析.zip

    本资料“js基础测验简答题解析.zip”聚焦于JS的基础知识,帮助学习者深入理解并掌握这门语言的核心概念。下面,我们将详细探讨其中可能涉及的一些关键知识点。 1. **变量和数据类型**: - JS中的变量声明通常使用`...

    js基础教学笔记.docx

    ### JavaScript基础教学知识点详解 #### 一、编程语言 **2.1 编程** 编程是一种将人类意图转化为计算机可以理解和执行的过程。通过编写代码,程序员可以指导计算机完成特定任务。 **2.2 计算机语言** 计算机语言...

    JavaScript的基础资料(语法,DOM对象模型等)

    本文将深入探讨JavaScript的基础语法以及DOM对象模型。 一、JavaScript基础语法 1. 变量:在JavaScript中,我们使用`var`、`let`或`const`来声明变量。`var`在全局或函数作用域内有效,而`let`和`const`则在块级...

    JSTL表达式详解(JAVA)

    其中,JSTL表达式是JSTL库中用于处理字符串和数组等数据的重要工具。在JSTL中,`fn`函数库提供了许多方便的字符串处理方法,让我们逐一详细讲解这些方法的使用和功能。 1. `fn:contains(string, substring)`:这个...

    PHP实例开发源码——bt种子爬虫程序源码 php版.zip

    4. **DOM解析与XPath**: - **DOMDocument** 和 **DOMXPath**:PHP提供DOM扩展用于解析HTML或XML文档,DOMXPath则是用来查询DOM树的工具。它们可以用来定位和提取HTML页面中的特定元素。 5. **文件操作**: - **...

    js基础知识点思维导图

    本思维导图将深入探讨JS的基础知识点,帮助初学者构建全面的JavaScript知识体系。 1. 变量与数据类型: JavaScript有六种基本数据类型:Undefined、Null、Boolean、Number、String和Symbol(ES6新增),以及一种...

    Java Script 经典教程(七)——JavaScript用户指南

    JavaScript,作为一种广泛应用于Web开发的脚本语言,是前端开发中的核心技术之一。它与Java虽然名字相似,但实际上是两种截然不同的编程语言。本篇教程将深入探讨JavaScript的基础概念、语法特性以及在实际应用中的...

    旨在学习基本JS算法(变量、循环等...)的练习_JavaScript_下载.zip

    这个压缩包"旨在学习基本JS算法(变量、循环等...)的练习_JavaScript_下载.zip"显然是一个学习资源,帮助初学者掌握JavaScript的基本算法和概念,如变量、循环等。以下是这些关键知识点的详细解释: 1. **变量...

    JavaScript中文手册.CHM,有很好的目录,索引,和搜索功能

    1. **基础语法**:介绍JavaScript的基础结构,包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象、数组、Symbol等)、操作符(算术、比较、逻辑、赋值、三元运算符等)...

    javascript实例

    本文将根据提供的章节结构,对JavaScript的核心概念、语法和常见应用进行详尽解析。 第1章:基础语法 1.1 变量声明:了解var、let和const的区别,学习如何声明并初始化变量。 1.2 数据类型:深入理解JavaScript的...

    5.JavaScript基础语法.zip

    JavaScript,也被称为JS,是一种广泛应用于网页和网络应用的脚本语言,主要负责网页的动态化和交互性。它是浏览器内置的语言,通过解释执行来实现客户端的编程功能。本资料包"5.JavaScript基础语法.zip"包含的是关于...

    JavaScript/js基础教程

    JavaScript,也常被称为JS,是一种轻量级的解释型编程语言,主要应用于Web开发,用于增加网页的交互性和动态功能。作为初学者,理解并掌握JavaScript的基础知识是至关重要的,因为它是网页三剑客(HTML、CSS、...

    Java语言基础下载

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

    javascript系列大全

    - 变量:JavaScript中的变量无需预声明,可以随时创建和赋值,支持var、let和const三种声明方式。 - 数据类型:包括基本类型(如字符串、数字、布尔、null、undefined)和引用类型(如对象、数组、函数)。 - ...

    21天学通JavaScript课后习题答案

    在“21天学通JavaScript”的课程中,学员们将深入学习这门语言的基础和高级特性,包括变量、数据类型、控制结构、函数、对象、数组、作用域、闭包、原型链等核心概念。课后习题是巩固所学知识的重要环节,通过解答...

    A samart way to learn javascript

    《一种学习JavaScript的聪明方式》这本书的目录详细地梳理了学习JavaScript的基础知识和技巧,将教学内容分为多个章节,每个章节都专注于一个特定的主题或概念,使读者能按部就班地学习编程语言。以下是根据目录内容...

    java学习进阶之路,如果从一个菜鸟进阶成大神(csdn)————程序.pdf

    - **XML处理**:学习SAX、DOM和JDOM解析XML的方法,理解它们的原理并能在实际项目中运用。 - **高级特性**:探索反射、代理、泛型、枚举和正则表达式,了解它们在实际编程中的应用。 3. **数据库相关** - **理论...

    JavaScript基础教程_Appendix

    "JavaScript基础教程_Appendix"很显然是一个关于JavaScript入门学习的补充资料,可能包含了对JavaScript基础知识的深入解析、常见问题解答、实用技巧等内容。在这个教程中,我们可能会探讨以下几个关键知识点: 1. ...

    网络编程基础篇之Javascript(EXE)

    了解并掌握以上JavaScript基础知识后,可以进一步学习更高级的主题,如闭包、模块化、ES6新特性、前端框架(如React、Vue、Angular)以及Node.js后端开发,从而成为一名全面的Web开发者。这个“网络编程基础篇之...

Global site tag (gtag.js) - Google Analytics