zoukankan      html  css  js  c++  java
  • JavaScript基础知识从浅入深理解(一)

    JavaScript的简介

      javascript是一门动态弱类型的解释型编程语言,增强页面动态效果,实现页面与用户之间的实时动态的交互。

      javascript是由三部分组成:ECMAScript、DOM、BOM

        ECMAScript由ECMA-262定义,提供核心语言功能(ECMA是欧洲计算机制造商协会)

        DOM(Document Object Model)文档对象模型,提供访问和操作网页内容的方法和接口

        BOM(Browser Object Model)浏览器对象模型,提供与浏览器交互的方法和接口

    1.使用JS的三种方式以及注释

    //(1)直接在HTML标签中,直接使用时间属性,调用JS代码
    <button onclick="alert('点我呀')">点我呀!</button>
    
    //(2)在页面的任意位置使用script标签插入JS代码。
    <script type="text/javascript">
        alert(123)
    </script>
    
    //(3)引入外部JS文件。可以把脚本保存到外部文件中。外部文件通常包含被多个网页使用的代码。外部 JavaScript 文件的文件扩展名是 .js。
    <script src="01.js" type="text/javascript"></script>

    注意:

      1.JS代码可以放在页面的任意位置使用,但是放置的位置不同,将影响JS执行的顺序。

      2.引入外部JS文件的script标签,不能再包含任何的JS代码。

    JS的注释

    //单行注释   Ctrl+/
    /* 多行注释 Ctrl+Shift+/     */

    JS中的基础知识

    1.JS中的变量:

      (1)变量的声明: 使用var关键字声明.var num = 1;

      (2)变量可以不声明也可以直接赋值: num = "哈哈哈哈";

      (3)使用一行代码声明多个语句:var a=1,b=1,c。其中b为undefinde。

      区别:使用var声明的变量属于局部变量,只在当前作用域有效(相当于局部变量),不用var声明的变量默认是全局变量,在整个JS文件可以用。

    2.JS中变量声明的注意事项

      (1)JS中声明变量的关键字只有var一个,变量的类型取决与赋值的类型。如果声明后未赋值,则为undefined类型。

      (2)JS中同一个变量,可以在多次赋值中,被修改数据类型。var a=1; a="dddd"

      (3)变量可以使用var声明,也可以直接赋值声明。(var声明的作用域为局部变量)

      (4)在JS中一个变量可以多次使用var声明,后面的声明相当于直接赋值,没有任何卵用。

      (5)JS变量区分大小写,大写和小写不是同一个变量。

    3.JS中的数据类型

      (1)undefinde:使用var声明但是没有赋值的变量。

      (2)null : 表示空的引用。

      (3)Boolean:真假

      (4)Number:在JS中数值类型包括整形和浮点型。

      (5)String:字符串

      (6)Object:对象

    4.常用数值函数

      (1)isNaN:用于检测一个变量是不是非数值(Not a Number)。在检测时会先调用Number函数,尝试将变量转换成数值类型,如果最终结果能够转为数值,则不是NaN。
      (2)Number函数:将各种数据类型转换成数值类型。
        >>> Undefined:无法转换,返回NaN。
        >>> null:转为0
        >>> boolean:true转为1,false转为0
        >>> String:如果字符串是纯数值字符串,则可以转换;如果字符串包含非数值字符,则不能转换,返回NaN。如果是空字符串转为0。
      (3)parseInt():将字符串转换成数值类型。
        >>> 如果是空字符串,不能转。""-->NaN
        >>> 如果是纯数值类型字符串,可以进行转换,且小数点直接舍去不保留。"12.3"-->12
        >>> 如果字符串包含非数值字符,则将非数值字符前边的整数进行转换。"123a"-->123 ; "a123"-->NaN
      (4)parseFloat:转换机制与parseInt相同。
        不同的是,转换数值字符串时,如果字符串为小数则可以保留小数点,整数型没有小数点。"123"-->123    "123.3"-->123.3
      (5)typeOf():检测一个变量的数值类型
         字符串-->String 数值-->Number  true/false-->Boolean  未定义-->undefind  对象/null-->object  函数-->function  

    5.JS中常用的输入输出语句      

      (1)alert():弹窗输出

      (2)prompt(a,b):弹窗输入。接收两个部分:a--提示内容;b--输入框的默认文本。(两部分都可以省略)。输入的内容默认都是字符串。

      (3)document.write():在浏览器页面中打印输出。

      (4)console.log():浏览器控制台打印。

    6.JS中的运算符(与Java类似,这里就只讲述不同的地方)

     与Java不同的:

      (1)除号: 无论符号两边是整数还是小数,除完后都将按照实际结果保留小数。(22%10=2.2)

      (2)===:绝对等于(数值和数据类型必须相同),而==至判断两边数据是否相同,并不关心两边的数据类型是否相同。

      (3)& 和 | :只能进行按位运算,如果两边不是数值类型,将转换成数值后在运算。

      (4)&& 和 ||:只能进行逻辑运算。

    JS中的if

      (1)boolean : true为真,false为假

      (2)数值类型:0为假,非0为真

      (3)字符串类型:空字符串为假,非空字符串为真

      (4)null/undefined/NaN:全为假

      (5)Object:对象全为真

    JS中的swichswicht(各种数据类型),比对时采用 === 进行判断,要求数据类型完全想等。

    函数的声明与调用

    1.JS中函数声明的格式

    function 函数名(参数1,参数2,.....){
        //函数体代码
        return 返回值;
    }

    2.函数的调用:

      (1)直接调用: 函数名(参数1,参数2,.....)

      (2)通过事件调用:在HTML标签中,通过事件属性进行调用。

    注意事项:

      (1)函数中有没有返回值,只取决于函数有没有return,无需可以声明。在JS中,有返回值可以不接收;没有返回值,也可以接收,结果为Undefined。

      (2)JS中函数的形参列表与实参列表没有任何关联,也就是说有参数可以不赋值,没有参数也可以赋值。未赋值的参数是undefined。函数的实际参数列表取决于实参列表。

      (3)JS中函数是变量的唯一作用域。(除了函数,其他方式都没有作用域,也就是都是全局变量)。函数的形参属于局部变量。

      (4)函数的声明与调用语句没有先后之分,即,可以先写调用语句,在声明函数。

     3.自执行函数

    (1)!function(){}();//开头使用!表明这是自执行函数。
    (2)(function(){}())//用()将匿名函数声明与调用包裹。
    (3)(function(){})()//用()将匿名函数声明语句进行包

    注意:函数的调用语句必须放在声明语句之后。

    [JS代码的执行顺序]

      JS的代码执行分为两个阶段:检查编译阶段和代码执行阶段。

      检查编译阶段:主要检查语法错误, 进行变量的声明、函数的声明等声明操作。

      代码执行阶段:变量的赋值、函数的调用等执行语句,属于代码执行阶段。

    4.arguments对象

      1、作用:用于保存函数的所有实参。

          >>>当函数存在实参时,可以使用数组下标访问函数的所有实参。alert(arguments[6])

      2、arguments中的元素的个数取决于实参列表,与形参个数无关。

      3、一旦函数调用时,传入了实参,那么对应位数的形参,将于arguments对应的元素进行绑定,修改形参,arguments中对应的元素将被改掉,反之也成立。但是,如果某一位置没有传入形参,则形参和arguments将不进行关联。

      arguments.callee(): 指向当前函数的引用,用于在函数中使用递归调用自身。

  • 相关阅读:
    Linux 命令二
    配置文件加载
    线程 wait 等待与notify 唤醒 使用 java 代码
    maven setting.xml
    Spring Boot入门——文件上传与下载
    写入txt 、读取csv、读取txt
    Java使用HttpClient上传文件
    kafka实战
    文本去除html标签
    sprig aop事务配置
  • 原文地址:https://www.cnblogs.com/JiangLai/p/8966399.html
Copyright © 2011-2022 走看看