JavaScript (简称 JS)
JavaScript 最初只是为了完成简单的表单验证(验证数据合法性), 结果后来不小心就火了.
当前 JavaScript 已经成为了一个通用的编程语言
JavaScript 的能做的事情:
学习JavaScript,我们就一定要来拜见一下我们的祖师爷
JavaScript 之父 布兰登 * 艾奇 (Brendan Eich)
我们还需要明确的是JavaScript与Java没有任何关系
我们可以理解为
浏览器分成渲染引擎 + JS 引擎.
ECMAScript(简称 ES): JavaScript 语法
DOM: 页面文档对象模型, 对页面中的元素进行操作
BOM: 浏览器对象模型, 对浏览器窗口进行操作
光有 JS 语法, 只能写一些基础的逻辑流程.
但是要想完成更复杂的任务, 完成和浏览器以及页面的交互, 那么久需要 DOM API 和 BOM API.
上面只是对JS一个简单的了解,接下来我们一起来感受一下JS的语法,关于语法部分,由于一些逻辑与代码的书写与Java类似,所以博主这里只会重点介绍不同的地方,关于DOM与BOM博主会在后续博文进行讲解
在博主正式讲解语法前,我们先来了解以下前置知识,方便后续的讲解
首先我们得明确
接下里我们一起写一下我们的第一个JS程序
此处的alert作用为弹出一个警示对话框, 输出结果
直接嵌入到 html 元素内部
"button" value="点我一下" οnclick="alert('你好,遇事问春风乄')">
注意,:
写到单独的 .js 文件中
alert('遇事问春风乄')
注意:
外部式JS适合代码多的情况.
// 我是单行注释
/*
我是多行注释
我是多行注释
我是多行注释
*/
注意:
弹出一个输入框
// 弹出一个输入框
prompt("请输入您的姓名:");
弹出一个警示对话框, 输出结果
// 弹出一个输出框
alert("hello");
上面已经演示过了,这里不再演示了
在控制台打印一个日志(供程序员看)
// 向控制台输出日志
console.log("这是一条日志");
如何查看日志,我们需要需要打开浏览器的开发者工具(F12) => Console (控制台)标签页 才能看到结果
这里的console 是一个 js 中的 “对象”
avaScript 虽然一些设计理念和 Java 相去甚远, 但是在基础语法层面上还是有一些相似之处的.
有了 Java 的基础很容易理解 JavaScript 的一些基本语法
创建变量(变量定义/变量声明/变量初始化)
var name = 'zhangsan';
var age = 20;
var 是 JS 中的关键字, 表示这是一个变量.
= 在 JS 中表示 “赋值”, 相当于把数据放到内存的盒子中. = 两侧建议有一个空格
每个语句最后带有一个 ; 结尾. JS 中可以省略 ; 但是建议还是加上.
注意, 此处的 ; 为英文分号. JS 中所有的标点都是英文标点.
初始化的值如果是字符串, 那么就要使用单引号或者双引号引起来
初始化的值如果是数字, 那么直接赋值即可
使用变量
console.log(age); // 读取变量内容
age = 30; // 修改变量内容
代码示例: 弹框提示用户输入信息, 再弹框显示
var name = prompt("请输入姓名:");
var age = prompt("请输入年龄:");
var score = prompt("请输入分数");
alert("您的姓名是: " + name);
alert("您的年龄是: " + age);
alert("您的分数是: " + score);
也可以合并成一个弹框显示:
alert("您的姓名是: " + name + "\n" + "您的年龄是: " + age + "\n" + "您的分数是: " +
score + "\n");
- +表示字符串拼接, 也就是把两个字符串首尾相接变成一个字符串.
- \n 表示换行
JavaScript 中还支持使用 let 定义变量. 用法和 var 基本类似,博主更推荐使用let,具体区别可以参考 青颜的天空 大佬所写的《JavaScript中let和var区别详解》
还需要强调的我们上面的无论let还是var都属于动态类型
那什么是动态类型呢?
let a = 10; // 数字
let b = "hehe"; // 字符串
let a = 10; // 数字
a = "hehe"; // 字符串
这一点和 C Java 这种静态类型语言差异较大.
JS 中内置的几种类型
JS 中不区分整数和浮点数, 统一都使用 “数字类型” 来表示
let a = 07; // 八进制整数, 以 0 开头
let b = 0xa; // 十六进制整数, 以 0x 开头
let c = 0b10; // 二进制整数, 以 0b 开头
Infinity: 无穷大, 大于任何数字. 表示数字已经超过了 JS 能表示的范围.
-Infinity: 负无穷大, 小于任何数字. 表示数字已经超过了 JS 能表示的范围.
NaN: 表示当前的结果不是一个数字
let max = Number.MAX_VALUE;
// 得到 Infinity
console.log(max * 2);
// 得到 -Infinity
console.log(-max * 2);
// 得到 NaN
console.log('hehe' - 10);
字符串字面值需要使用引号引起来, 单引号双引号均可.
let a = "haha";
let b = 'hehe';
let c = hehe; // 运行出错
如果字符串中本来已经包含引号咋办?
let msg = "My name is "zhangsan""; // 出错
let msg = "My name is \"zhangsan\""; // 正确, 使用转义字符. \" 来表示字符串内部的引号.
let msg = "My name is 'zhangsan'"; // 正确, 搭配使用单双引号
let msg = 'My name is "zhangsan"'; // 正确, 搭配使用单双引号
有些字符不方便直接输入, 于是要通过一些特殊方式来表示.
使用 String 的 length 属性即可
let a = 'hehe';
console.log(a.length);
let b = '哈哈';
console.log(b.length);
使用 + 进行拼接
let a = "my name is ";
let b = "zhangsan";
console.log(a + b);
表示 “真” 和 “假”
注意:Boolean 参与运算时当做 1 和 0 来看待
如果一个变量没有被初始化过, 结果就是 undefined, 是 undefined 类型
let a;
console.log(a)
undefined 和字符串进行相加, 结果进行字符串拼接
console.log(a + "10"); // undefined10
undefined 和数字进行相加, 结果为 NaN
console.log(a + 10);
null 表示当前的变量是一个 “空值”.
let b = null;
console.log(b + 10); // 10
console.log(b + "10"); // null10
注意:
JavaScript 中的运算符和 Java 用法基本相同. 此处不做详细介绍了.
只是简单提一下:
+ |
---|
- |
* |
/ |
% |
= |
---|
+= |
-= |
*= |
/= |
%= |
++: 自增1 |
---|
- -: 自减1 |
< > |
---|
<= |
>= |
== 比较相等(会进行隐式类型转换) |
!= |
=== 比较相等(不会进行隐式类型转换) |
!== |
这里涉及一个隐式转换,是指在JavaScript中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算。这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换。
转换规则如下:
转换举例:
用于计算多个 boolean 表达式的值.
<< 左移 |
---|
>> 有符号右移(算术右移) |
>>> 无符号右移(逻辑右移) |
关于《【JavaEE初阶】 JavaScript基础语法——壹》就讲解到这儿,HTML 只是描述了页面的骨架结构.使用 CSS 可以针对页面进行进一步美化,JavaScript可以赋予灵魂。关于JavaScript的后续讲解,请关注博主后续创作。感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下!