• javaScript知识体系(上)- 变量、语句、函数、对象


    1. 变量

    1.1 基本输出语句

        console.log("在控制台输出的内容");
        document.write("在文档中书写内容");
        window.alert("其实是window的方法"); 

    1.2 代码注释
        //行注释
        /**
         * 这里可以对函数的功能进行说明
         */
        /*多行注释
         多行注释
         多行注释*/
    1.3 标签位置

    1.4 标签属性

    1 <script src="demo.js" type="text/javascript"></script>
    2 <script src="demo.js"></script>
    3 <script src="demo.js" async="async"></script>
    4 <script src="demo.js" defer="defer"></script>

    1.5 变量命名

    •     由字母、数字、下划线、$ 组成且开头不能是数字
    •     不能是保留字,(class enum extends super const export import)
    •     区分大小写
    •     变量的名称要有实际意义
    •     规则中所说的字母包括ASCII和Unicode字母字符,如汉字,但不推荐使用
    •     变量的命名遵守驼峰命名法,首字母小写,第二个单词的首字母大写 例如:userName

    1.6 变量的声明和使用

    •  JavaScript是弱类型的语言,即声明不同数据类型的变量使用同一个关键字var

    1.7 数据类型

    • 声明的时候不用考虑类型,但是处理和计算的时候要考虑类型

    1.7.1 基本数据类型

    • number数值型
    • string字符串型
    • boolean布尔型
    • undefined 未定义
    • null空

    1.7.2 复杂数据类型

    • object对象
    • 使用typeof关键字可以查看变量的数据类型

    1.7.3 数值类型

    • 字面量: var num = 数字;
    • 浮点数:
      • 计算浮点数时会丢失精度
      • 我们通常用整数的计算来表示浮点数的计算
      • 以两个浮点数是否相等作为条件判断的依据(判断范围还是可以的)
    •  NaN
      • NaN是数值类型
      • NaN不等于自身

    1.7.4    字符串类型

    • 字面量: var str = “字符串”;
    • 字符串的长度: str.length;
    • 转义符: 换行 ’单引号 ”双引号 \斜杠
    • 字符串的不可变性: 

    1.7.5  布尔类型

    • 所有类型的值都可以转化成布尔值
    • 会转化成false的值有: 
    • 空字符串 数值零NaN undefined null

    1.7.6    undefined类型     

    • 表示声明但未赋值的变量
    • 函数没有返回值默认返回undefined
    • 函数传递的实参个数少于形参个数时,未传递的参数值为undefined
    • 对象没有定义的属性默认为undefined

    1.7.7    类型转换(转成字符串类型)     

    • 转换成字符串
    • 将任意类型转化为字符串 String(值)
    • 大部分类型都有toString方法 值.toString()
    • 小技巧 值+” ”

    1.7.8    类型转换(转成数值类型)     

    • 转换成数值  将任意类型转化为数值 Number(值)
    • 将字符串转化为数值 parseInt(“字符串”)  parseFloat(“字符串”)
    • 小技巧 值-0

    1.7.9    类型转换(转成布尔类型)转换布尔

    • 将任意类型转化为布尔值 Boolean(值)
    • 条件判断中自动转换 if(值)
    • 小技巧 +""值

    1.8    操作符

    1.8.1    一元运算符     

    • 递增++ 递减--
    • a++ 先参与运算 后自加
    • ++a 先自加 后参与运算

    1.8.2    逻辑运算符     

    • &&和||都采取短路运算,即第一个能够决定结果就不再看第二个了
    • && 的要求比较宽松 要两个都是true才是true 所以看到第一个是false就没有必要继续完后看了
    • || 的要求比较严格,要两个都是false才是false,所以看到第一个是true就没有必要继续完后看了
    • &&和||不但可以操作布尔类型的值,对其他类型的值也可以进行操作,并返回可以决定表达式结果的那个值。

    1.8.3    赋值运算符

    1.8.4    运算符优先级

    2. 语句

    2.1 选择语句if

    2.2    三元表达式 

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

    2.3    选择语句switch

    2.4    循环语句for

    2.5    break和continue

    •     break跳出当前循环,执行循环后的语句
    •     continue跳出当前循环,继续执行循环

    2.6    循环语句while

    •     while语句 先判断后执行
    •     do while 语句 先执行后判断

    3. 数组

    3.1 数组声明

    •     var arr = new Array();//数组的构造函数 创建的是一个空数组
    •     var arr = new Array("4");//只有传入一个数值的时候 才表示数组元素的个数
    •     var arr = [5];//因为直接量直接表示的就是数组的内容 所以再传入一个数值表示的也是内容

    3.2 数组赋值

    •     var arr = new Array();//数组的构造函数 创建的是一个空数组

    3.3 数组使用

    •     var arr = new Array();
    •     arr.lengh; //获取数组元素的个数
    •     length属性是动态改变的 通过arr.length可以动态追加

    3.3 冒泡排序     

    <script>
            var arr17 = [56,45,23,78,67,34,96,39,44,23,45,37,85];
            var outer = 0;
            var inner = 0;
            for(var i = 0; i < arr17.length - 1; i++){
                var flag = true;
                for(var j = 0 ; j < arr17.length - 1 - i; j++){
                    if(arr17[j] > arr17[j+1]){
                        var tempValue = arr17[j+1];
                        arr17[j+1] = arr17[j];
                        arr17[j] = tempValue;
                        flag = false;
                    }
                    inner++;
                }
                outer++;
                if(flag){
                    break;
                }
            }
        </script>

    4. 函数

    4.1. 函数的声明

        function 函数名 () {//函数体 }
        1. 声明式函数
        2. 函数表达式

    4.2. 函数的调用

            函数名();

       四种调用模式:

    • 普通函数调用
    • 方法调用模式
    • 构造函数都用模式
    • 上下文调用模式

    4.3. 函数的参数

    •     有参数的函数的声明(声明中的参数只是一个占位符,没有实际的值,是形式参数,即形参)
    •     function 函数名 (参数1,参数2,参数3...) {//函数体 }
    •     有参数的函数的调用(调用时传入的参数才是有真正数值的参数,是实际参数,即实参)
    •     函数名(参数1,参数2,参数3...);

    4.3. 函数的的返回值

    •     在函数中通过return关键字将要返回值返回
    •     return 要返回的值;

    4.4. 函数的的高级概念

    •     @参数详解
      •  在JS中实参的个数和形参的个数可以不一致
    •     @返回值详解
      • 函数的返回值是什么,调用这个函数就相当于调用什么,如果没有返回值则为undefined
      • 函数在执行完return语句后便会退出函数,后面的代码不会执行
    •     @两种定义方式
      • 函数声明
    •     function fn1() {//函数体}
      •  函数表达式
      •  var fn2 = function() {//函数体}

    4.5. 匿名函数

        @参数详解
        变量 = function () {//函数体}

    4.6. @递归调用

        程序调用自身的编程技巧称为递归

    4.7. @回调函数

    •     函数也是一种普通的数据类型
    •     因此函数也可以被当作参数传递
    •     被当作参数传递的函数叫做回调函数

    4.8. 全局变量 局部变量

        函数内部声明的变量(局部变量)

    5. 对象

    •     从宏观的角度讲,对象是对客观事物的抽象,事物的特征可以用属性表示,事物的行为可以用方法表示
    •     从微观的角度讲,对象就是一种数据类型,通过对象可以方便地对变量和函数进行管理

    5.1. 键值对

    •     键值对就是一种对应关系,通过键能够方便地找到值
    •     键:值    key:value    k:v

    5.2. 对象的声明

    •     通过构造函数声明(更加通用)var obj= new Object();
    •     通过字面量声明(更加简便)var obj= {};
    •     对象具有属性和方法
      • 属性 用来描述对象的特征 一般是名词 对应变量
      • 方法 用来描述对象的行为 一般是动词 对应函数

    5.3. 属性

    •     属性的定义 对象.属性名 = 值;
    •     属性的调用 对象.属性名;

    5.4. 方法

    •     方法的定义 对象.方法名 = function(){ //函数体 };
    •     方法的调用 对象.方法名();

    5.5. 对象的其它概念

    5.5.1 @对象字面量

    •     var o = {name : "zs", age : 18, sayHi : function() {console.log(this.name);} };

    5.5.2 @对象标记法

    •     JavaScript Object Notation(JavaScript对象标记法)是仿照JS中对象字面量的格式去书写的一串用来记录对象数据的字符串,可以用于数据传输。将来学习AJAX会详细学习。

    5.5.3 访问属性的两种方式

    •     点语法(简单)对象.属性名
    •     中括号(灵活)对象[“属性名”]

    5.5.4 @遍历的两种方式

        通过for可以对集合进行有序的遍历
        for(var k in json) { 语句 }; k变量代表的是json中的各个属性(key)和 var i = 0中的i是一个意思 名字不同而已

    拼着一切代价,奔你的前程。_巴尔扎克
  • 相关阅读:
    Codeforces Round #408 (Div. 2) C
    Codeforces Round #408 (Div. 2) B
    Codeforces Round #408 (Div. 2) A
    我眼中的Linux设备树(五 根节点)
    我眼中的Linux设备树(四 中断)
    我眼中的Linux设备树(三 属性)
    我眼中的Linux设备树(二 节点)
    我眼中的Linux设备树(一 概述)
    为什么你应该(从现在开始就)写博客
    LCD正向扫描和反向扫描
  • 原文地址:https://www.cnblogs.com/hongqin/p/5986465.html
Copyright © 2020-2023  润新知