JavaEE day6 初识JavaScript

什么是JS

JS是通行在各种浏览器的一种语言,JAVA后端代码运行在服务器上,JS代码内容配合HTML,浏览器对JS代码进行解释运行,然后展现在浏览器上,web开发离不开JS。

一般步骤为:(index.html与script.js都是静态资源)

1.html内容传递到浏览器上被其分析解析,发现存在<script src="script.js"></script>

2.找到该关联资源script.js

3.运行该js代码,影响到html的最终结构

4.最终用户看到的效果=index,html中的内容+script.js代码修改的内容


如何在html中引入js

注意:脱离了html的js是没有用的。浏览器不会直接运行,直接在浏览器中输入js的url请求js资源,只能看见js的代码,并不能让其运行。

只有使用<script>标签才可以,其使用方法有两种

1.<script>直接写js代码</script>   js代码写在html文件中,不推荐

2.<script src=“script资源的URL”></script>   js与html文件分离,推荐使用

我们知道css的引入建议放在<head>中

而js的引入,也就是<script>标签,建议放在<body>中,并且出现在所有的元素后面(浏览器从上至下扫描,若<script>标签后还有其他标签可能导致js代码执行出错)若有多个<script>标签,按照执行的先后顺序,依次引入。


JS的打印

此处的打印不是打印到页面上,而是打印到开发者工具的控制台面板

首先JS和JAVA的区别有:

1.java所有执行的语句必须放在某个方法才可以,JS没有这个限制

2.java的第一条语句必须是main方法下的第一条语句,JS语句写出来就能执行,不需要main方法

console.log(....):意为 调用console对象的log方法,其中console为控制台对象,log为日志方法,将消息打印到控制台。console对象是JS天生提供好的对象。然后就可以在控制台上看到js的效果。

学习阶段可以在控制台上直接输入JS代码运行,输入后回车就可以,但是做项目得时候不可以,因为这种写法不会保存,关了浏览器就没了。

此处再提一个对象:window对象。

window:JS中唯一的全局对象,粗略的认为这个对象就是浏览器本身在JS中的化身。

例如window.console.log,因为是JS中唯一的全局对象,可以省略window:console.log


JS中的变量

和java的不同的地方:

1.JS的变量没有类型一说(数据是有类型的)比如java中int只能赋值为1、2、34这种而不能赋值为12.36,JS没有这种类型限制,但是数据是有类型的指的是,1、2是整型,12.36是浮点型。

使用:

在java中我们可以使用 int a = 2  指的是创建a对象类型为int赋值为2

JS中则是var a = xxx,a为变量名,但是JS不是赋值,而是创建a这个引用指向了xxx的对象,而后我们再使用a的时候直接可以a=“hello”指的是a引用指向“hello”这个对象      tips:JS中字符串单引号双引号都可以。


JS中的数据类型

1.数字类型(Number) 2 3 3e8 0x37

2.字符串类型   “xxxxx”   ‘xxxx’

3.布尔类型    true/false

4.特殊类型(错误类型)undefined未定义的/null空的    JS认为这两个类似


JS中相等的判断与 if  while

==比较相等(会进行隐式类型转换)

!=比较不等(会进行隐式类型转换)

===比较相等(不会进行隐式类型转换)

!==比较不等(不会进行隐式类型转换)

进行类型转换的意思是先把a数据和b数据的数据类型对齐也就是进行一次类型转换,然后再进行比较

而不转换的话,只要类型不同就直接判定false,类型相同才继续进行判断

例如:1==“1”为true              1==="1"为 false

java中的if....while....必须是布尔类型,因此 if  (1) while (1) 是错误的

但是js中 if  (1) while (1) 是可以的,0看作false,非0看作true  undefined/null看作true,“”看作false


JS中数组类型

JS中的数组内部结构类比为java中的顺序表,使用方法上类似数组,可以直接使用{下标]

java中的数组长度是固定的,顺序表的长度是可以变的。JS的数组长的是可变的。

var a = [] 空的数组

var a = [1,2,3,4]  四个元素的数组  

var a = [1,undefined,undefined,4]   四个元素的数组,其中两个类型为undefined

var a = [1,3,5,"hello","world"]  五个元素的数组,元素的类型可以是任意类型

var a = [1,3,5,["a","b","c"]]  四个元素的数组,其中第四个元素为另一个数组

如果我们使用下标来找元素。那么我们针对上面第二个数组

a[0] 就显示1 a[1]就显示2 a[2] 就显示3  a[3]就显示4,若是a[-1](下标不合法)则不会报错,会显示undefined!

如果我们在上面第二个数组中直接写出指向  : a[10] = 100,那么就会导致中间出现6个空元素,

[4] 到[9]都为空,那么他们的都被看作为undefined。

注意:不要给数组名直接赋值(此处其实是指向)!因为JS中引用也就是变量是没有类型的,上文提过,那么你给数组名称直接赋值实质上就是等于换了个指向。

例如var arr = ['小猪',‘小狗’]

arr = ‘小猫’,那此时arr指向就不为数组了,上面数组消失,arr指向字符串小猫。

数组方法

尾插push(...)

尾删pop(...)

头插unshift(...)

头删shift(...)

遍历数组的方法:

方法一:

for(var i = 0; i<var.length;i++){

        //i是下标

        //arr{i]是元素

}

方法二:

for(var i in arr){

        //i是下标

        //arr{i]是元素

}

方法三:

for(var e of arr){

        //e是元素,没有下标

}


JS中的函数

1.如何定义函数

function 函数名(a,b,c){

        语句

}

必须是function关键字开头,没有返回值类型(因为js本身变量就没有类型),且形参列表:没有变量类型也不用写var,上面直接写入元素a,b,c

语句:针对return:任何JS函数都肯定有一个返回值,哪怕没有写return,没写视为返回undefined,或者写return;没有表明return啥,也视为返回了undefined。

例如:

由于无论怎么样的都会有返回值,上图中全部都为调用该函数产生的返回值,而定义函数的时候返回值全部为undefined。

因为变量无类型,所以我们可以返回任何值,什么都行:

 2.函数的调用

函数名称(实参);

变量 = 函数名称(实参);

JS不要求形参和实参的个数完全对上。可以不一样(可以少也可以多),JS中是没有重载的概念的,因为形参无类型且个数无要求。

例如:

 那么

以上都可以调用该函数,最后一行多的4要用其他方式获取。 

重点:函数也是一种数据类型:其他JS数据类型能享受的,函数一样可以。时刻记住JS里的引用(变量)后=什么东西一定是指向而不是赋值,那么就很好理解!!

例如a = 1; a = ”hello“同样a = function(){}。

调用函数的时候我直接a()就可以了。

例如其他数据类型可以作为容器的元素,函数也可以。

数组 var a = [1,2] 同样也可以var a = [fuction(x){return x;}]

那么a[0]就代表这个函数,调用的时候,我们可以直接a[0](1)也可以var b指向a[0],再用b(1)调用。

例子:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花落尽舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值