JavaScript学习笔记01

目录

一、JavaScript发展历史

二、JavaScript的用途

三、JavaScript的组成

四、书写方式

五、变量(重点)

六、数据类型(重点)

七、判断数据类型

八、数据类型转换


一、JavaScript发展历史

1.JavaScript是1995年网景公司雇佣布兰登开发的全新语言。

2.JavaScript最初是为了实现浏览器客户端交互。

3.1997年7月,ECMA组织发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript。这个版本就是ECMAScript 1.0版。

4.ECMAScript和JavaScript的关系:前者是后者的标准/规格,后者是前者的一种实现。在一般场合,这两个词可以互换。

二、JavaScript的用途

1.浏览器客户端开发(前端开发)

2.服务端开发  (nodejs)

3.桌面应用开发

三、JavaScript的组成

1. ECMASCRIPT: 定义了javascript的语法规范,描述了语言的基本语法和数据类型

2.BOM(Browser Object Model):浏览器对象模型

        有一套成熟的,可以操作浏览器的API,通过BOM可以操作浏览器。比如:浏览器跳转、弹出框、获取分辨率等。

3.DOM(Document Object Model):文档对象模型

        有一套成熟的,可以操作页面元素的API,通过DOM可以操作页面的元素。比如:增加div,减少div,给div换位置等。

总的来说就是通过固定的语法去操作 浏览器 和 标签结构 来实现网页上的各种效果。

四、书写方式

1.行内式(不推荐)

写在标签内的js代码需要依靠事件(行为)来触发

<body>
    <a href="javascript:alert('a弹出层');">点击试试</a>
    <div onclick="alert('弹出层')">点击试试</div>
    <!--注:onclick是一个点击事件,当点击元素的时候执行后面的js代码-->
</body>

2.内嵌式

写在<script></script>标签里面

<body>
    <div>关闭弹出层才显示的内容</div>
    <!--
        内嵌式的js代码会在页面打开的时候直接触发
        script标签可以写在head里面,也可以放在body里面,但最好写在body结束前
    -->
    <script type="text/javascript">
        alert('我是一个弹出层')
    </script>
</body>

3.外链式(推荐)

外链式js代码只要引入了html页面,就会在页面打开时直接触发

新建一个.js为后缀的js文件,在文件里写js代码,把js代码引入html页面

js代码:

alert('我是一个弹出层')

html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- 引入js文件 -->
    <script src="外链式.js"></script>
</head>
<body>
    
</body>
</html>

五、变量(重点)

1.本质上是内存中的一个存储单元,理解为在程序中保存数据的一个容器。语法:

var 变量名=值

重复定义或赋值的话值会被覆盖

2.命名规则和规范

规则:必须遵守的,不遵守就会错

(1)由字母、数字、下划线、$美元符号组成

(2)不能数字开头

(3)不能是关键字(有特定意义的单词,如var)

(4)不能是保留字(将来有特殊用途的单词)

(5)严格区分大小写

(6)命名不要出现空格

规范:建议遵守的(开发者默认),不遵守不会报错

(1)语义化

(2)驼峰命名

(3)不要使用中文

3.访问变量值

console.log('输出内容')    //控制台显示输出内容

console.log(变量名)        //控制台显示变量名值

4.变量内存结构图

六、数据类型(重点)

是指我们存储在内存单元中值的类型

通常分为基本数据类型复杂数据类型

1.基本数据类型

1)数值类型(number)

一切数字都是数值类型(包括二进制、十进制、十六进制等)

特殊的数字类型 NaN (not a number 非数字值)

2)字符串类型(string)

被引号包裹的所有内容。可能是单引号' '、双引号" ",还有可能是反引号· ·

3)布尔类型(boolean)

两种值:

(1)true 成立/真 

(2)false 不成立/假

4)空类型(object)

一个值:null

5)未定义类型(undefined)

一个值:undefined

未赋值的意思

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <!--五种基本数据类型-->
    <script>
        var num=100
        var name="Amy"
        var isGirl = true
        var isBlank=null
        var age
        console.log(num,typeof num)
        console.log(name,typeof name)
        console.log(isGirl,typeof isGirl)
        console.log(isBlank,typeof isBlank)
        console.log(age,typeof age)
    </script>
</body>
</html>

 控制台结果:

2、复杂数据类型

 1)对象类型(object)

 2)函数类型(function)

……

七、判断数据类型

1.使用typeof关键字进行判断

//第一种方式
var n1=100
console.log(typeof n1)
//第二种方式
var s1='abcdefg'
console.log(typeof(s1))

2.isNaN(x)

函数用于检查其参数x是否是非数字值,是非数字值返回true,否则返回false。即不是数字返回true,是数字返回false。

八、数据类型转换

1.字符串转为其他类型

(1) Number()
            var msg = '100'
            Number(msg) --> 100
            Number('Jack') --> NaN
            Number(false) --> 0
            Number(undefined) --> NaN
            Number('') --> 0

(2) parseInt()
            parseInt('100') --> 100
            parseInt('1a00') --> 1
            parseInt(100.9) --> 100

特点:

        1.从左向右转换
        2.遇到数值字符串转为数值,遇到非数值结束转换,如果第一个为非数值,结束输出NaN
        3.取整  

(3) parseFloat()
            parseFloat(10.98) --> 10.98

特点:
       1.从左向右转换
       2.遇到数值字符串转为数值,遇到非数值结束转换,如果第一个为非数值,结束输出NaN
       3.认识一次小数点  

2.其他类型转字符串
        (1)变量.toString()
            undefined和null不能用toString方法,用了会报错

        (2)String(变量)

        所有数据类型都可以

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        var msg='100'
        console.log(msg,typeof msg)
        console.log( Number(msg), typeof msg)
        console.log( Number(msg), typeof Number(msg))
        console.log('jack', typeof Number('jack'))
        console.log( 'null', typeof Number(''))
        var a
        console.log( 'a',  Number(a))
        console.log( 'true', typeof Number(true))

        // 其他类型转字符串类型
        var b=100
        console.log(b.toString(), typeof b.toString())
        console.log( String(100),  typeof String(100))
        console.log( String(undefined),  typeof String(undefined))
        console.log( String(null),  typeof String(null))
        console.log( String(true),  typeof String(true))
    </script>
</body>
</html>

控制台结果:

 

        (3)使用加法运算

        + :JavaScript中有两层意义

  • 连接符。只要加号任意一边是字符串,表示连接符
  • 算术运算中的加法运算符

3.其他数据类型转为 布尔类型

'', 0, NaN, undefined, null,这五种转Boolean类型是false,其它都是true

九、运算符(重点)

1.算术运算 +  -  *  /  %
        除了+后面加字符串会进行拼接,其它都会进行隐式类型转换,将字符串转为数字

2.赋值运算符 += -= *=
        a+=10  -> a=a+10
        a-=10  -> a=a-10
        a*=10  -> a=a*10

3.比较运算符 >  >=  <  <=  ==  ===  !=  !==
        比较运算结果 Boolean值
        == 和 === 区别:
            100 == '100' -> true
            100 === '100' -> false
            两个等号只比较值是否相同
            三个等号比较值和数据类型,也叫恒等于

4.逻辑运算符 &&  ||  !
        逻辑与 && (且运算)
            同为真,则为真,一方为假则为假
        逻辑或 ||
            同为假,才为假,一方为真则为真
        逻辑非 !
            非真则假,非假则真
            !true -> false
            !false -> true
        注意:短运算
            false && true -> false
            逻辑与运算时,如果左边为false,右边不参与运算
            8>10 && 2<3

5.自增自减运算符(一元运算符)
        自身值加一 a++  a=a+1
        自身值减一 a--  a=a-1
        加加或减减可以放到变量前面或后面,如果是单独运算没有区别,都是自身加一或减一
        a++/a--    ++a/--a
        参与其它运算时:
            ++a 先加一,再赋值

           a++ 先赋值,再加一
           减法同理 

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        var p = 10
        var q = p
        console.log(++p, q = p) //11 11

        m=-1
        console.log(m++) //-1
        console.log(++m) //1
        console.log(m++ + ++m) //4
        console.log('m',m)     //m 3
        
    </script>
</body>
</html>

6.运算符优先级

下表按从最高到最低的优先级列出JavaScript运算符,具有相同优先级的运算符按从左至右的顺序求值

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值