WEB入门浅谈03

JavaScript

JavaScript 是一种脚本,一门编程语言,它可以在网页上实现复杂的功能,网页展现给你的不再是简单的静态信息,而是实时的内容更新,交互式的地图,2D/3D 动画,滚动播放的视频等等。JavaScript是运行在浏览器上的,功能就是控制页面与用户之间进行交互。

JavaScript书写的位置也有三种
1、内联,写到HTML里

    <div onclick="console.log('hello')">
        这首歌叫时间,唱有梦想的少年,这时一种信念,鼓励着你改变,这是一页诗篇,戏码由你主演,无论暴雨晴天,请你坚持信念。
    </div>

点击div的时候就会触发一个点击事件,浏览器获取到这个点击事件,就会执行onclick这里对应的JavaScript代码
在这里插入图片描述
2、内部,写到HTML文件里的<script>标签里

    <script>
        var div = document.querySelector("div")
        div.onclick = function () {
            console.log('hello');
        }
    </script>

3、外部,写在一个单独的文件里,通过HTML中的<script>标签引入

    <script src="test.js"></script>
// 直接这么写的话,页面在加载时就已经运行了这部分代码
console.log("hello");

console.log();就是打印,相当于Java中的System.out.println()

运行在浏览器上的JS只能通过HTML作为载体,才能运行在浏览器上
但是也不绝对, JS 也可以依赖 nodejs 执行,脱离浏览器

JS其实不仅仅能开发网页,也能开发服务器,或者开发一个桌面程序(依赖nodejs)

JavaScript的基本语法

JAVA与JavaScript的差异大也不大

变量(类型)

使用var关键字表示这是一个变量,这个变量的类型是在初始化(赋值)的时候确定的。
num的类型就是number
s的类型就是string

//创建变量
var num = 10;
//单引号和双引号不进行区分
var s = 'hello';

一个变量的类型并不是固定死的,而是会随着赋值类型的不同而改变

使用var定义变量时,在{ } 之外也可以访问,var也可以省略,省略时,当前变量就是一个全局变量
可以使用let来定义变量,现在浏览器都支持

null 、undefined在JS中时单独的一个变量

我们可以通过typeof来查看和比较变量的类型,在java中则是 instanceof 比较变量的类型
在JS中, == 表示的是比较内容,而在 Java 里是比较身份,在java中比较内容用的是equals/compareTo

    let lit = 'lit';
    console.log(typeof (lit));

在这里插入图片描述

条件语句

与Java中相似 如:

    let num = 999;
    if (num > 100){
        console.log(100);
    }else{
        console.log(num);
    }

但是,也有不同之处,如:

    let num = 998;
    if (num){
        console.log(100);
    }else{
        console.log(num);
    }

所以if中的条件不一定非得是boolean表达式,也可以是其他类型。

循环

while循环

	let num = 1;
	while (num <= 10){
		console.log(num);
		num++;
	}

for循环

	for (let num = 1;num <= 10;num++){
		console.log(num);
	}

break 和 continue 的用法都与java类似

let of 相当于Java中的for each

	let arrs = [1,2,3,4,5,6,7,8,9,0]
	for (let arr of arrs){
	    console.log(arr);
	}
数组

Java中要求数组中的元素类型是相同类型,如果想让数组中有不同类型,就用Object

但是在动态语言中,一般都允许一个数组中存储不同类型的数据

创建数组的两种方法:

// 此处可以枚举设置数组中的数据
let arr = [];
//括号里就为数组的长度
let arr2 = new Array(10);

打印数组的长度,也可以用来修改数组的长度,多出来的位置就默认为undefined

console.log(arr.length)

在JS中,数组下标不会越界,当访问的下标>=数组的长度时,则访问结果为undefined,且可以访问负数的下标以及不是数字的下标,类似键值对

数组尾插

arr.push(20)
函数

函数的定义:在定义函数时,无论有无返回值,返回值时什么类型都可以用function 其余与Java类似
在调用函数时,如果实参少于形参,那么其余形参的内容就会补充为undefined
当一个数字与undefined(非数字类型)进行运算时,运算结果就很容易成为NAN(NOT A NUMBER)

function hello(num){
	console.log(num)
}
hello(100);

JS语法中的或操作

a=a||0;
b=b||0;
c=c||0;
//若a为真,则返回a的值,a为假就返回0

JS是为数不多的几个 两数相除结果返回小数的 编程语言


补充

动态类型与静态类型(了解)
静态类型:变量的类型在程序 运行过程中 ,不能发生变化,代码一旦编译好之后,每个变量的类型就固定死了,如:Java C C++ Go
动态类型:变量的类型在程序运行过程中,可以发生变化,每次不同的赋值都有可能会改变变量的类型, 如: JavaScript Python Ruby PHP
一个语言是不是动态类型,与这个语言变量的定义方式无关。
如果是开发一个小型程序(2个人左右),动态类型更好,更灵活
如果是多人协作开发程序,静态类型更好


JS里面在进行一些运算的时候,往往会进行一些隐式类型转换
如:boolean类型与int类型相加时,boolean就会转换为int,再与int类型相加
像这种类型能经常转换的语言,称为 弱类型
像Java这种不太支持隐式类型转换的语言,称为 强类型

强类型更好一些,有时候隐式类型转换会让其它程序员增加代码使用成本,有时候会发生一些不可预料的结果,从而增加工作难度。

类型的强弱 和 静态动态类型 时两种不相干的概念

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值