• javascript基础学习


    1.对js来说,通过var语句声明,但是没有给初始值,那么他的初始值为undefined。

    2.对未声明也未赋初值的变量返回error,但是如果是有typeof(variable)则返回undefined。

      可以通过改功能判断一个变量或者域有没有被声明,多用在类库引用时。

    3.所谓的域就是大括号之间的区域(并非所有的大括号)。区域内声明的变量大多数情况下只能被该域和其子域引用,不能被域外引用,但是这个域单指函数与闭包吧。

    4.查找一个变量是否存在先从当前域开始查找,然后依次扩大范围,由此而言,域内与域外定义了相同名称的变量,那么在域内引用改变量,只会引用该域的变量,而并非域外的变量。

    5.如果一个变量在域中声明,那么它作用于域的所有范围内。这点与java不同,一下是我举得例子。

    js代码

    复制代码
    function a(){          for(i=0;i<1;i++){                            for(j=0;j<1;j++){                                              alert (j);                           }          }          alert(j); } a();
    复制代码

    可以输出变量j来。

    java代码

    复制代码
    package org.spring;
    publicclass mian {
    /** * @param args */publicstaticvoid main(String[] args) { for(int i=0;i<1;i++){ for(int j=0;j<1;j++){ System.out.println(j); } } System.out.println(j); }
    }
    复制代码

    还没输出就报编译错误了。所以说这是java与js的不同。书上说,这是由于,js没有块的概念。

    6.常量表达式的值就是这个常量本身 ,变量表达式的值,是这个变量存放或引用的值。

    7.当除法的除数是0时返回的是Infinity,而如果是0/0则将得到NaN。

    8.js中做除法运算时,与java不同的是,会保留精度。3/2=1.5,若不需要,则应用Math.floor(3/2)=1

    9.&&运算符,若左边的表达式它的值为false或者可以被转变为false(null,NaN,0或undefined),那么它返回左边的值,否则返回右边的值。只有左边右边都为true了才返回true。

      ||运算符,若左边的表达式为true,即不为false或者不可转变为false,那么返回左边的值,否则返回右边的值,只有左右两边都为false,才返回false。

      与java不同的是,只有类型为boolean了才能返回false或者ture。更多的是返回两边的值。&&左边为false了就返回左边的值,||左边不为false了,就返回左边的值。

      if(a==b)dosth() 等同于a!=b||dosth();

    10.对象运算符,"in"要求左边的运算符是一个字符串,或者可以转变为字符串,右边的运算符是一个对象或者数组,如果左边的值是右边的对象的一个属性名则返回true

      instanceof:要求左边的运算数是一个对象,右边的运算数是对象类的名字,如果左边的对象是右边类或者它子类的一个派生类的实例,就返回false否则返回true。

      如果右边不是对象则抛出异常。

      delete,删除对象属性,数组元素,或者变量,如果删除成功返回true,否则返回false。如果属性不存在,那么也返回true,但是注意某些属性是不能够不删除的。

    11 .与[]:.跟[]都可以进行对象属性的访问,如果我没记错的话as也是这样子的。不过通过.来进行访问必须是合法。但是[]则可以随意。

      .访问,是当做对象属性来读取,而[]则把对象当做数组下表来读取。这里也可以看出js中对象与数组是很相似的关系。

    12.typeof:该函数返回number,string,boolean。如果是对象、数组、null,它返回的是object,对函数、类和闭包它返回的是function,如果运算数是未定义或者为赋值的它返回undefined,同时不同的浏览器环境也会返回不同的值。

    13.for(..in..)用来遍历对象所有的属性。例如

      

    var obj={x:0,y:20,name:'zhangsan'}; for(arr in obj){         alert(obj[arr]); }

    返回所有对象中得属性

    复制代码
    var obj={x:0,y:20,name:'zhangsan'}; function getArr(){          var ret=new Array();          var i=0;          for(ret[i++] in obj);          return ret; } alert(getArr());
    复制代码

    14 js中得try..catch.finally

    try{}catch(e){alert(e)}finally{};

    15 with,修改默认的作用域,当要再很长的一段深层对象中提取属性时,可以使用with;

  • 相关阅读:
    JSP注册登录页教程
    SSH框架搭建详细图文教程
    .Net Core2.2升级到3.1小记
    AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署
    AspNetCore容器化(Docker)部署(三) —— Docker Compose容器编排
    AspNetCore容器化(Docker)部署(二) —— 多容器通信
    AspNetCore容器化(Docker)部署(一) —— 入门
    asp.net core 3.0 gRPC框架小试
    HttpClient Received an unexpected EOF or 0 bytes from the transport stream
    PdfReader按页将PDF切割成多个PDF
  • 原文地址:https://www.cnblogs.com/sntetwt/p/3312041.html
Copyright © 2020-2023  润新知