zoukankan      html  css  js  c++  java
  • js简述以及js基本

    javascript是1995年网景创立 原名为livescript后改名为javascript;(当时工作于 Netscape 的 Brendan Eich (布兰登·艾奇),着手为即将在 1995 年发行的 Netscape Navigator 2.0 开发一个称之为 LiveScript 的脚本语言,当时的目的是在浏览器和服务器(本来要叫它 LiveWire)端使用它。Netscape 与 Sun 共同完成 LiveScript 实现。)

    javascript运行在客户端的脚本语言,是嵌套在html中,能够被浏览器直接解析(与浏览器内核有关);可简称为js。

     

    js作用:主用于写网页特效,表单验证,增加用户与浏览器之间的交互效果

     

    js组成ECMAScript(组织,欧洲计算机制造商协会,用于规定js语法规范;ES5即是说ECMAScript的第五版)、BOM(浏览器对象模型)、DOM(文档对象模型)

     

    在js中注释的方法有两种:

                             “//”为单行注释

                            “/* */”为多行注释

    js的标签为:

    <script></script>    <script type="text/javascript"></script>   ; 一般我会写于</html>之后,也就是说其实可以写在body里,一般也会推荐写在</body>的前面:

      1.避免因为加载(下载)脚本或脚本运行过慢,阻塞页面。

      2.防止脚本运行时,页面未加载完成,造成script要操作的DOM结点没有加载完成而出错。

          但是个人习惯则写在</html>之后;用于控制html和css。

     

    js的输出语句:①document.write("内容");        //输出在浏览器页面上

             ②alert("内容");         //以弹窗的方式输出

                    ③console.log("内容");     //输出在控制台中(F12)主用于调试bug  一般最常用的也是console.log;他会在代码错误的时候提供信息。

    :①如输出的为字母或中文,用引号包起来,可单引号也可多引号;除非他是变量。

      ②如输出的为数字,引号可加可不加。

      ③在浏览器页面中换行用<br/>;在非浏览器中(弹窗,控制台等)换行用 。

      ④如果输出的是变量,一定不能加引号。(加引号就会当作字符串,会原样输出)

      ⑤如果输出的有字符串和变量,字符串和变量之间用“+”进行连接。(eg:document.write(“我的名字是” + userName + "<br/>"))

     

    js(常量):在程序运行的过程中,始终不变的值(量)叫常量。(数值型:整数、小数;字符型:“”或‘’括起来的字符串)

    js(变量):在程序运行的过程中,值可能会发生改变的量叫变量。(输出变量时不能加引号;先定义变量,在使用变量)

     

    定义变量的两种方式:

    ①显示定义:var 变量名 = 值       (var为关键字(定义)  var与变量名之间有空格,变量名与=与值之间的空格非必加,但是个人认为为了代码看着不拥挤以及美观这里推荐加上空格)

    ②隐示定义:变量名 = 值 

      eg:

       var a = 1;    //把1赋值给a;

         var b = "abc";

                 a = 2;   //已经var 了一个a 则改变a值时无需再var一个a;

     

    定义的变量名的注意事项:

    ①字母、数字、下划线、$可以任意组成变量名(但不能以数字开头;禁止用中文命名)

    ②不能使用关键字和保留字(关键字:js中的关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。保留字:其实就是在以后可能会作为关键字的。)

    ③要做到见名识意(语义化)

    ④关于驼峰式命名:大驼峰、小驼峰(大驼峰:多个单词组成,每一个单词的首字母大写(UserName);小驼峰:多个单词组成,第一个单词首字母小写,其他单词首字母大写(userName))

     

    js 的数据类型

    ①基本数据类型:数值型(number)、字符串(string)、布尔(boolean)

    ②特殊数据类型:underfined(定义了对象,未赋值)、null(空)

    ③复合数据类型(一般叫引用数据类型):对象(object):{ }(对象)、[ ](数组)

     

    也可分为两类:一般也只说两类:

    ①基本数据类型:数值型(number)、字符串(string)、布尔(boolean)、underfined(定义了对象,未赋值)、null(空)

    ②引用数据类型:对象(object):{ }(对象)、[ ](数组)

     

    在①中数值型为:整数,小数;     字符串为:单/双引号包起来的都是字符串;     布尔为:true、false

    注:在引号中嵌套:外面是双引号,里面就为单引号;反之。

     

     

    基本数据类型不能动态的添加属性和方法;

     

    引用数据类型可以动态的添加属性和方法。

     

    基本数据类型操作的是值
    引用数据类型操作的是引用地址

     

    内存

     

    基本数据类型:存储值在栈里。(先进后出FILO)FILO—First-In/Last-Out

     

    引用数据类型:存储地址(十六进制xxxfff000)在栈里,内容存储在堆里。(先进先出FIFO)FILO—First-In/First-Out

     

     

    检测数据类型的方法:

    typeof:  

    typeof  变量/值(typeof与变量/值之间有空格)

    typeof(变量/值)(typeof与(变量/值之间无空格))

                eg:console.log(typeof num);

    检测数据类型的时候,检测出来的值都是加了引号的(所以他本身是字符串),但是在控制台中显示不出来。即:

      只要多写一个typeof 检测出来的都是"string",也就是用typeof检测另一个typeof出来的值 都是"string"

    typeof弊端:在检测为null的时候会显示为object。

     

    准确判断一个数据的类型:

    object.prototype.toString.call()

    let a = "string";
    let b = 111;
    let c = {};
    let d = [1, 2, 3];
    let e = function () {
        console.log("eee");
    }
    let f = undefined;
    let g = null;
    let h = new Date();
    let i = /test/;
    let j = true;
    
    console.log(Object.prototype.toString.call(a) === '[object String]');//true
    console.log(Object.prototype.toString.call(b) === '[object Number]');//true
    console.log(Object.prototype.toString.call(c) === '[object Object]');//true
    console.log(Object.prototype.toString.call(d) === '[object Array]');//true
    console.log(Object.prototype.toString.call(e) === '[object Function]');//true
    console.log(Object.prototype.toString.call(f) === '[object Undefined]');//true
    console.log(Object.prototype.toString.call(g) === '[object Null]');//true
    console.log(Object.prototype.toString.call(h) === '[object Date]');//true
    console.log(Object.prototype.toString.call(i) === '[object RegExp]');//true
    
    console.log(Object.prototype.toString.call(c) === '[object Object]');//true
    console.log(Object.prototype.toString.call(d) === '[object Object]');//false
    console.log(Object.prototype.toString.call(e) === '[object Object]');//false

    js运算符:就是操作运算的符号:就像  &&(且)   !(非)  + (是加号但又不只是加号)  ?(条件运算符里的条件)等;

    js表达式:可以为常量、变量、一个式子。

     

    js的算术运算符

    ①单目(一元):++     - -

    ②双目(二元):+   -   *   /   %(求余/求模)(任何一个数%10都能把这个数的个位数取出来)

    关于①:操作数必须是变量

    i++ 和 ++i 的区别:

    相同点:变量i都会自增1;

    不同点:i++先让 i 值赋给整个表达式(也就是整个表达式的值=i),再自增1;反之++i先自增1,再赋值给整个表达式(也就是整个表达式的值为 i+1)。

    关于②:

    在  -   *   /   %中:

    ①如果两边都是数值型,可以进行正常运算;

    ②如果有一侧是纯数字字符串,js会自动将其转为数值型参与计算;

    ③如果有一侧是非数字字符串,结果为NaN(NaN:not a number  不是一个数  并且NaN本身也不等于本身,NaN的数据类型是number)

    eg:

    console.log( 3 - 1 ); //2

    console.log("3" - 1); //2

    console.log("3" - "a"); //NaN

    console.log("3" / 3); //1

    console.log("3" % 7); //3

    +:

    ①两侧都是数值型时,可以正常运算;

    ②只要有一侧是字符串,“+”  就代表连接    "a" + 1 = a1 ;

    赋值运算符:+=  -=  *=  /=  %=

    += :

    var x = 10;

    x += 10;   // x = x + 10;   //20

    -=:

    var x = 9;

    x -= 10;    // x = x - 10;   //-1

    *=:

    var y = 1;

    y *= 10; //  y = y * 10;    //100

    ...

    关系运算符:(比较运算符)

    >     <      ==(等于)     >=     <=    !=(不等于)    ===(全等)     !==(不全等)

    比较的结果为布尔值:true,false

     

    == 与 ===的区别

    ==:不看数据类型,只要值相等,则true;   (null == undefined  为true;值都无)

    ===:先看数据类型再看值,若不等,则false.   

     

    字符串的比较:比较的是ASCII码值,从左到右比较,知道比较出结果为止。

    a:97  b:98  c:99....

    A:65  B:66  C:67...

    以此类推。

    逻辑运算符:&&(与/且)  ||(或)  !(非)

    情况一:&&如果两侧都为真,整个表达式为真;一侧为假,整个表达式为假。

          eg:console.log(6>5 && 5>4);//true && true      true

                    console.log(6>5 && 4>5);//true && false     false

         || 如果有一侧为真,整个表达式为真;两侧都为假,整个表达式为假。

          eg:console.log(6>5 || 3>4);//true

            console.log(5>6 || 3>4);//false

         非假即真,非真即假

          eg:console.log(!false);//true

            console.log(!true);//false

    情况二://短路

    console.log(6>7 && 5>4);//false        //第一个式子已经为假,则不进行下一个式子的运算

    console.log(6>5 || 5>7);//false          //第一个式子已经为真,则不进行下一个式子的运算

    情况三:

    console.log(6>5 && 4);//4          //第一个式子为真,运行到4,为真,但是是具体的值则输出具体的值

    console.log(5>6 || 3);//3            //第一个式子为假,运行到3,为真,为具体数值则输出3

    条件运算符:(三目运算符)    ?:

    表达式1?表达式2:表达式3;

    如果表达式1成立,则输出表达式2;

    如果表达式1不成立,则输出表达式3.

    输入对话框:prompt(“提示语句”);

    特点:是一个输入框,有一个确认按钮,有一个取消按钮

    如果你想看输入的值,要用一个变量去接收他,若点击确定按钮,变量里存的为你的i输入值;若点击取消按钮,变量里存的为null.

    ParseInt()  将字符串转为数值型,并且数值取整。

    .toFixed(x)保留位x小数.(会执行四舍五入)

  • 相关阅读:
    WEB
    Python
    Git
    JavaScript
    鸡汤
    面向对象
    Python
    Python
    MongoDB
    Oracle 11g 安装
  • 原文地址:https://www.cnblogs.com/cqdd/p/10169256.html
Copyright © 2011-2022 走看看