ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【JavaScript】笔记(2)--- ECMAScript初步(变量,函数,数据类型等相关知识)

2022-01-27 23:03:19  阅读:162  来源: 互联网

标签:false 函数 JavaScript 数据类型 JS --- Boolean alert undefined


ECMAScript 知识点大杂烩:


1、javascript是一种弱类型语言,没有编译阶段,一个变量可以随意赋值,赋什么类型的值都行。

2、在JS当中,当一个变量没有手动赋值的时候,系统默认赋值 undefined,undefined 在 JS 中是一个具体存在值.

3、JS 中的变量是一种弱类型的,那么函数应该怎么定义呢?
          语法格式:
                 第一种方式:

                            function 函数名(形式参数列表){
                                函数体;
                            }

                 第二种方式:

                            函数名 = function(形式参数列表){
                                函数体;
                            }

JS中的函数不需要指定返回值类型,返回什么类型都行。

在JS当中,函数的名字不能重名,当函数重名的时候,后声明的函数会将之前声明的同名函数覆盖。

4、全局变量:
            在函数体之外声明的变量属于全局变量,全局变量的生命周期是:
                        浏览器打开时声明,浏览器关闭时销毁,尽量少用。因为全局变量会一直在浏览器的内存当中,耗费内存空间。
                        能使用局部变量尽量使用局部变量。
     局部变量:
           在函数体当中声明的变量,包括一个函数的形参都属于局部变量,
           局部变量的生命周期是:函数开始执行时局部变量的内存空间开辟,函数执行结束之后,局部变量的内存空间释放。
           局部变量生命周期较短。

5、当一个变量声明的时候没有使用 var关键字,那么不管这个变量是在哪里声明的,都是全局变量。

6、JS 中数据类型:

             原始类型:Undefined、Number、String、Boolean、Null

             引用类型:Object以及Object的子类

7、JS 中有一个运算符叫做typeof,这个运算符可以在程序的运行阶段动态的获取变量的数据类型。
          typeof 运算符的语法格式:
                     typeof 变量名

          typeof运算符的运算结果是以下6个字符串之一:注意字符串都是全部小写。

                        "undefined"
                        "number"
                        "string"
                        "boolean"
                        "object"
                        "function"

null属于Null类型,但是typeof运算符的结果是"object"
                        
8、在JS当中比较字符串是否相等使用“==”完成。没有equals。

9、数据类型:

1)Undefined 类型只有一个值,这个值就是 undefined ,当一个变量没有手动赋值,系统默认赋值 undefined 或者也可以给一个变量手动赋值 undefined。

2)Number 类型包括哪些值?

     -1 0 1 2 2.3 3.14 100 .... NaN Infinity(整数、小数、正数、负数、不是数字、无穷大都属于Number类型)

           isNaN() : 结果是true表示不是一个数字,结果是false表示是一个数字。
           parseInt ( ) 函数
           parseFloat ( ) 函数
           Math.ceil ( ) 函数(Math是数学类,数学类当中有一个函数叫做ceil(),作用是向上取整)

     关于NaN (Not a Number,不是一个数字,但属于Number类型),什么情况下结果是一个NaN呢?
            运算结果本来应该是一个数字,最后算完不是一个数字的时候,结果是NaN.

3)JS 中的布尔类型永远都只有两个值:true 和 false。

     在Boolean类型中有一个函数叫做:Boolean()。
            语法格式:
                   Boolean(数据)

     Boolean()函数的作用是将非布尔类型转换成布尔类型。

<script type="text/javascript">
    // 规律:“有"就转换成true,"没有"就转换成false.
    alert(Boolean(1)); // true
    alert(Boolean(0)); // false
    alert(Boolean("")); // false
    alert(Boolean("abc")); // true
    alert(Boolean(null)); // false
    alert(Boolean(NaN)); // false
    alert(Boolean(undefined)); // false
    alert(Boolean(Infinity)); // true
</script>

4)String类型:
     在JS当中字符串可以使用单引号,也可以使用双引号。
        var s1 = 'abcdef';
        var s2 = "test";

     在JS当中,怎么创建字符串对象呢?
        两种方式:
            第一种:var s = "abc";
            第二种(使用JS内置的支持类String): var s2 = new String("abc");
        需要注意的是:String是一个内置的类,可以直接用,String的父类是Object。

     关于String类型的常用属性和函数?

         常用属性:
            length 获取字符串长度

         常用函数:
            indexOf              获取指定字符串在当前字符串中第一次出现处的索引
            lastIndexOf        获取指定字符串在当前字符串中最后一次出现处的索引
            replace               替换
            substr                 截取子字符串
            substring            截取子字符串
            toLowerCase      转换小写
            toUpperCase      转换大写
            split                    拆分字符串

 

<script type="text/javascript">
    // replace (注意:只替换了第一个),继续调用replace方法,就会替换第“二”个.
    alert("name=value%name=value%name=value".replace("%","&")); // name=value&name=value%name=value
   
    // 想全部替换需要使用正则表达式.
    alert("name=value%name=value%name=value".replace("%","&").replace("%", "&")); // name=value&name=value&name=value
   
    // 考点:经常问 substr和substring的区别?
   
    // substr(startIndex, length)
    alert("abcdefxyz".substr(2,4)); //cdef
    // substring(startIndex, endIndex) 注意:不包含endIndex
    alert("abcdefxyz".substring(2,4)); //cd
   
</script>

5)在JS当中怎么定义类?怎么new对象?

     定义类的语法:

        第一种方式:
            function 类名(形参){
                
            }

        第二种方式:
            类名 = function(形参){
                
            }

     创建对象的语法:
        new 构造方法名(实参); 

     Object类包括哪些属性?

          prototype属性(常用的,主要是这个):作用是给类动态的扩展属性和函数。
          constructor属性

 

<script type="text/javascript">
   // 这种方式就表示把sayHello当做一个类来创建对象.
   var obj = new sayHello(); // obj是一个引用,保存内存地址指向堆中的对象.
   
   // 定义一个学生类
   function Student(){
	   alert("Student.....");
   }
   
   // 当做普通函数调用
   Student();
   
   // JS中的类的定义,同时又是一个构造函数的定义,在JS中类的定义和构造函数的定义是放在一起来完成的.
   function User(a, b, c){ // a b c是形参,属于局部变量.
	   // 声明属性 (this表示当前对象),User类中有三个属性:sno/sname/sage
	   this.sno = a;
	   this.sname = b;
	   this.sage = c;
   }
   
   // 创建对象
   var u1 = new User(111, "zhangsan", 30);
   // 访问对象的属性
   alert(u1.sno);
   alert(u1.sname);
   alert(u1.sage);
   
   // 访问一个对象的属性,还可以使用这种语法
   alert(u2["sno"]);
   alert(u2["sname"]);
   alert(u2["sage"]);
   
  //定义类的另一种语法:
   Product = function(pno,pname,price){
	   // 属性
	   this.pno = pno;
	   this.pname = pname;
	   this.price = price;
	   // 函数
	   this.getPrice = function(){
		   return this.price;
	   }
   }
   
   var xigua = new Product(111, "西瓜", 4.0);
   var pri = xigua.getPrice();
   alert(pri); // 4.0
   
   // 可以通过prototype这个属性来给类动态扩展属性以及函数
   Product.prototype.getPname = function(){
	   return this.pname;
   }
   
   // 调用后期扩展的getPname()函数
   var pname = xigua.getPname();
   alert(pname)

   // 给String扩展一个函数
   String.prototype.suiyi = function(){
	   alert("这是给String类型扩展的一个函数,叫做suiyi");
   }
   "abc".suiyi();
   
</script>

 

10、null NaN undefined这三个值有什么区别 :

<script type="text/javascript">
	// == 是等同运算符
	alert(1 == true); // true
	alert(1 === true); // false
	
	// null NaN undefined 数据类型不一致.
	alert(typeof null); // "object"
	alert(typeof NaN); // "number"
	alert(typeof undefined); // "undefined"
	
	// null和undefined可以等同.
	alert(null == NaN); // false
	alert(null == undefined); // true
	alert(undefined == NaN); // false
	
	/*
	    在JS当中有两个比较特殊的运算符
	    ==(等同运算符:只判断值是否相等)
	    ===(全等运算符:既判断值是否相等,又判断数据类型是否相等)
	*/
	alert(null === NaN); // false
	alert(null === undefined); // false
	alert(undefined === NaN); // false
</script>

 

标签:false,函数,JavaScript,数据类型,JS,---,Boolean,alert,undefined
来源: https://www.cnblogs.com/Burning-youth/p/15851447.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有