web前端基础笔记2Javascript(上)

ECMAScript: JS的核心,规定了JS的语法 和 词法。

DOM:Document Object Model 文档对象模型  主要用来跟网页打交道的。可以把整个网页看作为DOM的对象。提供访问和操作网页内容的方法。

BOM:Browser Object Model 浏览器对象模型   主要用来跟浏览器打交道的。提供与浏览器交互的方法。

JavaScript的作用

1.js可以动态的修改html及css的代码,DOM操作。

2.js可以对表单进行校验。

JavaScript的引入方式

在一个html页面中引入js的方式有两种:

1、内部js:也就是在html源码中嵌入js代码

语法格式:

<script type="text/javascript">

这里写你的js代码

</script>

注意:

1、<script>标签可以写在html页面中的任何地方。而且一个页面中可以有多个<script>标签。

2、type="text/javascript"可以省略

css和js区别

css属于并行加载语言,写在head标签中。

JS是阻塞式加载语言,自上往下加载,类似单线程。一般写在body标签的下面

2、外部js:也就是将js代码单独写成一个js文件(扩展名是 .js而不是 .javascript), 在html代码中引入这个封装好的js文件

语法格式:

<script type="text/javascript" src="xxx.js"></script>

注意:无论是内部js还是外部js在html中引入的位置是随意的,<head>标签中可以引入,<body>标签一样可以引入             

JavaScript的基本语法

js变量的定义

整型:  var i = 0;

浮点型:var d = 3.14;

字符串:var str = “黑马程序员”;

布尔型:var b = true;

语法格式:

var 变量名 = 变量值;

输出浏览器控制台方式有两种:

1)alert(输出信息);页面弹出框

2)直接输出到浏览器的控制台中:console.log(输出信息);

查看某个变量的数据类型

使用格式:  typeof 变量名

注意:typeof 变量名,返回值都是字符串类型。

查看控制台输出的都是什么数据类型

使用格式:typeof typeof 变量名

js的数据类型也分为基本数据类型(原始数据类型)和引用数据类型(复合数据类型),

5种基本数据类型(原始数据类型)

数字类型:number       包含了小数和整数

布尔类型:boolean       只有两个值: true(真)| false(假)

字符串类型:String       包含字符和字符串,既可以使用双引号又可以使用单引号

未定义类型:undefined   只有一个值,即 undefined未定义

空类型:null             只有一个值 null,表示空对象

补充: 值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

alert(null == undefined);  输出 "true",尽管这两个值相等,但它们的含义不同。

1种引用数据类型(复合数据类型)

object : 对象

与java一样,js中的对象都是引用数据类型,所以你也可以使用我们所熟知的new关键字来“创建对象”。

var obj = new object;

js运算符

在js中,JavaScript运算符与Java运算符基本一致。

赋值运算符:等号(=), 举例: var x = 5。

比较运算符: >  <  >= <=   ==  !=   ===  !==

== 和 === 的区别:

两者都可以用来比较两个变量的值是否相等。

== 先做数据类型的转换,再进行比较。比如可以将整数转换为字符串,或者将字符串转换为整数等。

=== 全等 严格的比较,如果符号两侧的数据类型不一致,则立刻返回false。

!= 和 !== 的区别:

!= 在表达式两边的数据类型不一致时,会隐式转换为相同数据类型,然后对值进行比较.

!== 不会进行类型转换,在比较时除了对值进行比较以外,还比较两边的数据类型,它是恒等运算符===的非形式.

逻辑运算符:  &&  ||   !

&&  并且,双与:只有运算符两侧都为true,结果才是true; 一假即假。

||    或者,双或:只要运算符两侧有一个是true,结果就是true;一真即真。

!    取反: !true = false;  !false=true;

注意:在js中,不光boolean值能够参与逻辑运算。所有的值都能参与逻辑运算.

JS中6个假的:

数字0, 空字符串‘’或者"", false,  空null,  undefined,  NaN

算数运算符: +  -  *  /  %

三元运算符:  条件表达式1 ? 条件表达式2 : 条件表达式3;

js的逻辑控制语句

跟java一样,js也存在if、if-else、switch、for、while、do-while等逻辑语句,与java使用方式一致

js的函数(重点)

普通函数

语法格式:

function 函数名(参数列表) {

js逻辑代码

}

函数调用:函数名(实际参数);

注意:一定要加上小括号

js函数和java中的不同点:

1、函数需要被调用才能执行。

2、js中,如果函数需要返回值我们直接return就行了。

定义函数的时候不需要声明返回值的类型,因为js是弱数据类型,返回什么数据类型都是var。

3、在js中,如果我们需要给函数传递参数,那么我们直接写变量名就行,不需要声明传入变量的类型。

4、在js中,不存在函数重载的概念,如果2个函数名相同,后面出现的函数会覆盖前面的函数。

5、如果函数的声明带有参数,但是调用时不带参数,函数也可以正常被调用。

6、如果函数声明时没有参数列表,调用的时候传入参数,函数也能照样执行。

7、在JS中,可以使用arguments来获取实际传入的参数。arguments是实参的参数数组。

匿名函数(难,理解):匿名函数也就是没有名字的函数

语法格式:

function(参数列表){

js逻辑代码

}

匿名函数没有办法直接调用,一般情况下匿名函数有两种使用场景:

第一种: 将匿名函数赋值给一个变量,使用变量调用函数。

定义函数并赋值给变量:

var fn = function(参数列表) {

js逻辑代码

};

调用函数:fn(实际参数);

获取元素

语法格式:

var oEle = document.getElementById(id的名称);

返回一个页面上元素对象

解释:

document: 文档 我们HTML里面就是指整个网页,属于一个对象。

get    Element   By   Id

获取   一个元素   通过  Id 

整句翻译过来就是:在页面上通过Id来获取一个元素。

阻止右键菜单弹出

例句:

<script type="text/javascript">

document.oncontextmenu = function () {

console.log("hello");

return false;

}

</script>

定时器setInterval

语法结构:

var timer = window.setInterval(code, millisec) 按照指定的周期(间隔)来执行函数或代码片段。

参数1: code 必须写。  执行的函数名或执行的代码字符串。

参数2: millisec 必须写。时间间隔,单位:毫秒。

window可以理解为浏览器窗口。

timer 返回值:一个可以传递给 window.clearInterval(定时器的返回值) 从而取消对 code 的周期性执行的值。

在关闭定时器时需要使用定时器的返回值作为参数,否则不知道关闭哪个定时器。

window.clearInterval(timer)关闭定时器的代码

window.onload: 表示在整个页面加载完毕之后在执行这里面的代码

JavaScript定时器:setTimeout

setTimeout() 在指定的毫秒数后调用函数或执行代码片段。和setInterval()不同的是setTimeout()只是执行一次,而setInterval()每隔指定的时间就会执行,

如果不停止计时器就会一直执行代码片段。

语法结构:

window.setTimeout(code,millisec)

参数:

code    必需。要调用的函数。

millisec 必需。在执行代码前需等待的毫秒数。

JavaScript样式获取或修改

获取或设置样式:

想完成弹出广告案例,除了使用上述介绍的定时器,还必须知道如何获取样式的获取和修改。

语法格式:

obj.style.样式名 获得指定“样式”的值。样式名包括标签的宽、高、背景颜色等。

obj.style.样式名= 样式值 给指定“样式”设置样式。

注意:如果属性有多个单词使用“-”连接,样式名书写的时候需要将“-”删除,并将后一个单词首字母大写。

例如:background-color 需要改成 backgroundColor

将一个字符串转换成一个数字使用:

window.praseInt(字符串);整型

window.parseFloat(字符串);浮点型

例(轮播图):

<script type="text/javascript">

        window.onload = function () {

                // 通过轮播图标签id获取图片标签

                var oIdimg = document.getElementById("idImg");//这里获取对应的图片的标签id

                // 初始化一个变量 第一次播放的图片名编号

                var n = 1;

                // 定时器 匿名函数

                window.setInterval(function () {

                    //利用n自增循环src里的图片的名

                    n++;

                    // 一共3张图到4自动回到1

                    if (n == 4) {

                        n = 1;

                    }

                    oIdimg.src = "img/" + n + ".jpg";

                }, 2000);

            };

</script>

例(定时弹广告):

<script type="text/javascript">

        window.onload = function() {

            // 获取广告的标签

            var adImg = document.getElementById("adImg");

            //开启定时器,3s后弹出广告

            window.setTimeout(function() {

                //让广告显示就是设置display:block

                adImg.style.display = "block";

                //广告显示完成之后,在消失

                window.setTimeout(function() {

                    //让广告消失,设置display:none

                    adImg.style.display = "none";

                }, 3000);

            }, 3000);

        };

    </script>

 

猜你喜欢

转载自blog.csdn.net/qq_39223083/article/details/83188315