JavaScript基础

151 阅读7分钟

1.什么是js?

JavaScript是一种专门与网页交互而设计的脚本语言,具有较强的逻辑性

2.js语言的特点

(1) 脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
(2) 基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。 
(3) 简单。JavaScript语言中采用的是弱类型的变量类型, 对使用的数据类型未做出严格的要求.
(4) 动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作,JavaScript都可直接对这些事件给出相应的响应。
(5) 跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提是机器上的浏览器支持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。 

3.js的组成

ECMAScript:
    是一种由ECMA国际(前身为欧洲计算机制造商协会,
    英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。
    ECMAScript 定义的只是这门语言的基础,他的组成部分有:语法、类型、语句、关键字、保留字、操作符、对象等
    
BOMBrowse Object Model, 浏览器对象模型,提供与浏览器交互的方法和接口(API), 开发人员使用BOM可以控制浏览器显示页面以外的部分.
DOMDocument Object Model,文档对象模型,提供访问和操作网页HTML内容的方法和接口

4.外部样式的引用方式

外部javaScript文件引入方式
     <script type="text/javascript" src="demo1.js" ></script>
注意:   
    1、不可以使用单标, 如这是不正确的写法 <script type="text/javascript" src="demo1.js“/ >
    2、在引入了外部文件的标签中写代码会无效, 下面的alert()不会执行
     	<script src=“demo1.js”>alert(‘xxxx’)</script>
<script>标签的属性: 
    src 表示要引入的外部文件
    type 表示脚本语言的类型  text/javascript,默认值就是它.
    language已废弃。原来用于代码使用的脚本语言。由于大多数浏览器忽略它,所以不要用了。
    charset:可选。表示通过 src 属性指定的字符集。由于大多数浏览器忽略它,所以很少有人用它。
    defer 和 async 都是异步加载
        async 异步加载 + js代码加载完成后立即触发(执行)
        defer 异步加载 + 页面解析完成之后,才会触发
        注意:"defer 和 async要和src结合使用 "

5. js变量

        //1.用var 声明变量,而变量名称 sName
        var sName;
        console.log(sName); //声明变量,未赋值的默认值是undifined
        //2.给sName赋予初始值
        sName = "名字";
        console.log(sName)

        //3.声明变量的同时赋值
        var age = 20;
        console.log(age);

        //4.同时多个值
        var myage= 10,mysex="man",myaddress="cs";
        console.log(myage,mysex,myaddress);

6.关键字以及保留字


        关键字:已经被Js内部使用了的
        break case catch continue default delete do else finally for function 
        if in instanceof new return switch this throw try typeof var void while with

        保留字:虽然暂时还未被使用,但是将来有可能会被js内部使用
        abstract boolean byte char class const debugger double 
        enum export extends final float goto implements import int interface long native 
        package private protected public short static super synchronized throws transient volatile

7.变量命名规范

变量命名规范
        1.只能是数字,字母,下划线,$
        2.不能以数字开头
        3.不能是关键字和保留字
        4.严格区分大小写
        5.遵循驼峰命名法
          小驼峰 变量,形参 myName
         大驼峰 构造函数,类 MyName
        6.语法化(见名知意)

8.js数据类型

JS数据类型一般可以分为: 
      Boolean: 布尔类型
      Number:数字(整数int,浮点数float  )
      String:字符串
      Object:对象 (包含Array数组 )
特殊数据类型 NullUndefined

注意: 变量的类型在赋值时才能确定

Number数据类型

1.Number类型:
      Number 类型包含两种数值:整型和浮点型.

整型:
var b = 100;    console.log(b);

浮点类型: 
就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字
var b = 3.8;
var b = 0.8;
var b = .8;	//有效,但不推荐此写法

2.Number类型:
      由于保存浮点数值需要的内存空间比整型数值大两倍,因此 ECMAScript 会自动将可以 
      转换为整型的浮点数值转成为整型。
    var b = 8.;	//小数点后面没有值,转换为8
    var b = 12.5;	//小数点后面是0,转成为12

对于那些过大或过小的数值,可以用科学技术法来表示(e 表示法)。用 e 表示该数值的前面 10 的指数次幂。
    var box = 4.12e9;	//即 4120000000
    var box = 0.0000412;	//即 4.12e-5

浮点数值的范围在:Number.MIN_VALUE ~ Number.MAX_VALUE 之间, 
如果超过了浮点数值范围的最大值或最小值,那么就先出现 Infinity(正无穷)或-Infinity(负无穷)。

3.Number类型:
     NaN, 即非数值(Not a Number)是一个特殊的值
     这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。比如,在其他语言中,  任何数值除 以 0 都会导致错误而终止程序执行。但在ECMAScript中,会返回出特殊的值,因此不会影响程序执行。
    var b = 0/0;    //NaN
    var b = 12/0;  //Infinity
    var b = 12/0 * 0;  //NaN

ECMAScript 提供了 isNaN()函数,用来判断是不是 NaNisNaN()函数在接收到一个值之后,会尝试将这个值转换为数值。
    console.log(isNaN(NaN));       //true
    console.log(isNaN(25));	  //false,25 是一个数值
    console.log(isNaN('25'));        //false,'25'是一个字符串数值,可以转成数值
    console.log(isNaN('zhangsan'));     //true,'zhangsan'不能转换为数值
    console.log(isNaN(true));        //false       true 可以转成成 1

字符串转换数字类型:
     parseInt()      是把其它类型转换为整型
     parseFloat()  是把其它类型转换为浮点型(小数)

    Math.round() 四舍五入 
	如: (78.566) -> 78

undefined数据类型

Undefined类型: 
    Undefined 类型只有一个值,即特殊的 undefined。
    在使用 var 声明变量,但没有对其初始化时,这个变量的值就是 undefined

例如: 
var b;  console.log(b);  //undefined

注意: 我们在定义变量的时候, 尽可能的不要只声明,不赋值, 而是声明的同时初始化一个值。

null数据类型

Null 类型: 
      Null 类型是一个只有一个值的数据类型,即特殊的值 null。
      它表示一个空对象引用(指针),而 typeof 操作符检测 null 会返回 object。 
例如: 
var b = null;   console.log(typeof b);

null派生了undefined
    undefined 是派生自 null 的,因此 ECMA-262 规定对它们的相等性测试返回 true, 表示值相等,
    但是两者的数据类型是不一样的。
例如:
    console.log(undefined == null);  //true
    var b ,car = null;   console.log(typeof b== typeof car); //false

boolean数据类型

Boolean类型: 
      Boolean 类型有两个值:truefalse。而true一般等于1false一般等于0JavaScript 是区分大小写的,TrueFalse或者其他都不是Boolean类型的值。
例如:
       var b= true;  console.log(typeof b);
       Boolean可以将一个值转换为其对应的 Boolean 值,可以使用转型函数Boolean()。
例如: 
    var a = 'Hello World!';
    var b = Boolean(a);
    console.log(typeof b);

boolean数据类型转换规则

Boolean 类型的转换规则: (牢记)
	String: 非空字符串为true, 空字符串为false
	Number: 非0数值为true, 0或者NaNfalse
	Object: 对象不为null则为true, nullfalse
	Undefined : undefinedfalse

9.算术运算符

算术运算符 : +,-, *, /, %(取余数)
字符串和变量的拼接: +
关系运算符 : <、>、<=、>=、==、===、!=, !==
逻辑运算符 : &&  与(且)、||  或、!  非
赋值运算符 :  =、+=、-=、*=、/=、%=
自增、自减 : ++a, a++, --a, a--

image.png