初始JS基础

666 阅读5分钟

一、浏览器分类

1、以谷歌浏览器webkit内核为主(V8引擎)

  • 谷歌浏览器:Chrome
  • 欧朋浏览器:Opera
  • 国产浏览器: 360普通浏览器,360极速浏览器,猎豹浏览器,搜狗浏览器,QQ浏览器,UC浏览器...
  • 苹果浏览器: Safari

2.Gecko内核

  • 火狐浏览器:Firefox

3.Trident内核

  • IE浏览器:IE68,IE9IE11,IE Edge

二、开发者工具

打开开发者工具:F12/FN+F12 (再或者浏览器页面->右键->检查)
  • Elements:包含了当前也页面中所有的结构和样式,基于它可以快速 查看和调整页面的样式和结构等。

  • Console:控制台,在JS中,我们可以向控制台输出一些内容,来进行项目的调试,如果项目程序出现问题,也可以在控制台查看报错信息,也可以在控制台编写代码,做一些测试...

  • Network:包含了当前页面所有向服务器发送的http请求信息,一般用于前后端数据交互中的bug调试以及页面中的性能优化。

  • Sources:包含了当前项目的源代码。

  • Application:可以看到本地存储的信息(Cookies/LocalStorage/SessionStorage...)以及当前网站中所有加载的图片等信息。 ...

  • 开启手机模拟器 Toggle Device Toolbar

三、web页面的三个组成部分:

  1. html:搭建页面结构
  2. css:编写页面样式
  3. js:完成人机交互效果
    • 基本的人机交互效果
    • 页面中具体的效果实现
    • 页面中动态数据的获取和绑定
    • 可能会操作浏览器的一些功能
    • ... JS是用来操作DOM和操作浏览器的

四、JS组成的三个部分

  • ECMAScript(ES3/ES6-9):定义了JS的语法规范,定义了语言本身的变量、数据值、操作语句、内存管理...等内容。
  • DOM(document object model) 文档对象模型:提供对应的属性和方法,可以让JS操作页面中的DOM元素.
  • BOM(browser object model) 浏览器对象模型:提供操作浏览器的属性和方法。

注意:当代项目开发,一般都是基于Vue/React完成的,基于这两个框架,我们已经不去操作DOM了,我们操作数据,由框架本身帮助我们完成DOM的操作。

五、JS中的变量 variable

变量:可变的量(其存储的值是可变的) 设置一个变量(起个名字),让其代表和指向某一个具体的值。

JS中的注释的快捷键:

  • 单行注释:ctrl + /
  • 批量注释(块注释):shift + alt +A

1、JS中创建变量的几种方式

  • ES3:var

  • ES6:let、const

  • function:创建函数

  • class:创建一个类

  • import/require 基于ES6Moudle或者Common.js 规范导入模块

    //1.基于var创建一个叫做n的变量,让其指向具体的值10
        var n=10;
        //基于var创建一个叫做m的变量,但此时没有指向任何的值,默认指向undefined
        var m;
        //在控制台输出n和m所代表的值
        console.log(n,m); //->10 undefined
       

     //2.基于ES6中的let创建一个变量,让其指向100,但是后期让其重新指向了200
        let a=100;
        a=200;
        console.log(a); //->200
        
     //3.基于ES6中的const创建一个变量,让其指向1000,此后b就不能再指向其他的值了,
     //一旦修改指向,则会报错,所以基于const定义的变量一般也被称为常量。
        const b=1000;
        b=2000;
        console.log(b);//会出现错误:->Uncaught TypeError:Assignment to constant variable

     //4.创建一个函数,也可以理解为创建一个变量func,让其指向这个函数
        function func(){
        }
        console.log(func);
        
     //5.创建一个类,也可以理解为创建一个变量Parent,让其指向这个类
        class Parent{
        }
        console.log(Parent);

      //6.基于模块规范来导入具体的某个模块,定义一个叫做axios的变量,用来指向导入的这个模块
        import axios from './axios';
        let axios = require('./axios');

2.JS中变量命名的规范

  • 严格区分大小写 let Test = 100; console.log(test);//出现错误:Uncaught ReferenceError: test is not defined

//编写代码时一定要区分大小写问题
    let Test = 100;
    console.log(test);//出现错误:Uncaught ReferenceError: test is not   defined       
  • 使用驼峰命名法: 由有意义英文组成一个名字,第一个单词首字母小写,其余每一个有意义的单词首字母大写
        //学生信息
        let studentInformation = {
            name:'张菲'
        };
        let studentInfo = {};
  • 项目中常见的有特殊含义的端词组
    • 新增/插入/创建:add / insert / create
    • 删除/移除:del / delete / remove
    • 修改:update
    • 查询/获取:select / query / get
    • 信息:info
    • ...
  • 命名规范:使用“$、_、英文字母、数字”命名。
    • 数字不能作为开头。
        //基于$开头,一般代表使用JQ或者其他使用$的类库获取的内容
        let $box = $('.box');
        //基于_开头,一般代表是全局或者公共的变量
        let _box = {};
        //基于数字区分相似名称的变量
        let box1 = 10;
        let box2 = 20;
        //数字不能作为开头
        //let 2box = 10;

        //想要分隔单词,可以使用_或者驼峰,但是不能是-
        //let box-list;//出现错误
        let box_list;
        let boxList;

        //虽然不会报错,但是不推荐使用
        let 盒子 = 100;
        console.log(盒子);

  • 不能使用关键字和保留字
    • 关键字:在JS中有特殊含义的,

    • 保留字:未来可能会成为关键字的。

 //不能这样命名
 var var = 10

六、JS中常用的数据类型

1、基本数据类型(值类型 / 原始值)

  • 数字:number
  • 字符串:string
  • 布尔:boolean
  • 空对象指针 null
  • 未定义 undefined
  • ES6新增的唯一值类型 symbol
        <!-- 基本数据类型 -->
        //number数字类型
        let n = 10;
        n = 10.5;
        n = -10;
        n = 0;
        n = NaN; //NaN: not a numebr,非有效数字
        n = Infinity; //Infinity:正无穷大,-Infinity:负无穷大

        //string字符串:基于单引号、双引号、反引号(TAB上面的撇)包起来的都是字符串
        let str = '';
        str = '19';
        str = "大家好";
        str = `加油`;
        str = '[object]';

        //boolean布尔:true / false
        let boo = true;
        boo = false;

        //空:null
        let nu = null;
        nu = undefined;
        let un; //->默认值就是undefined

        //Symbol:每一个Symbol()都是一个唯一值
        let x = Symbol('上课');
        let y = Symbol('学校');
        console.log(x == y); //->false

2、引用数据类型

  • 对象数据类型 object
    • 普通对象 {}
    • 数组对象 []
    • 正则对象 /^$/
    • 日期对象 new Date
    • 数学函数对象 Math
    • ...
  • 函数数据类型 function
        // Object普通对象: 大括号包起来,里面有零到多组属性名和属性值(键值对),这些属性名和属性值可以描述当前对象的特征
        // (键:值,多组键值对用逗号分隔).      
        let obj = {
            name:'蓝胖子',
            age: 10,
            teachers: 30
        };

        //Array数组对象: 中括号包起来,逗号分隔数组中的每一项的值(每一项的值可以是任意类型)
        let arr = [10,'字符串',null, true];

        //RegExp正则对象: 两个斜杠包起来一大堆你看不懂的符号就是正则
        let reg = /$[+-]?(\d|([0-9\d+]))(\.\d+)?^/;

        //function函数
        function func(x,y){
            let total = x + y;
            return total;
        };

        //ES6中的Arrow Function 箭头函数
        let fn = () =>{
        };