js变量、交互、数据类型、类型转换
javascript变量
用var声明一个变量
用var声明一个变量,变量提升,会把此段代码提升至代码最前边解析。
console.log(str); //输出undefined 浏览器不会报错
var str;
用let声明一个变量
let允许你声明一个作用域被限制在 块级中的变量、语句或者表达式。与 var 关键字不同的是, var声明的变量只能是全局或者整个函数块的。
let声明的是一个块级作用域,也就是说,只有当代码解析到let语句时,变量才被声明,所以浏览器会报错。
console.log(str); // 浏览器报错
let str;
变量赋值
str=1;
变量声明并赋值
var str=1;
标识符
javascript中的变量名与函数名被称为标识符;
命名规则
- 必须由数字、字母、下划线、$组成;
- 驼峰式书写方式。
- 不能以数字开头。
- 尽量不要写相同的名称,大小写不一样,js区分大小写。
- 见名知义。
- 不要使用js中的保留字和关键字。
保留字
“保留字”实际上就是预留的“关键字”,意思是现在虽然现在还不是关键字(也就是本身还不具备特殊含义的),但是未来可能会成为关键字的,你一样是不能使用它们当变量名啊方法名的。包括(按字母排序):abstract、boolean、byte、char、class、const、debugger、double、enum、export、extends、fimal、float、goto、implements、import、int、interface、long、mative、package、private、protected、public、short、static、super、synchronized、throws、transient、volatile 等。
关键字
“关键bai字”就是 JS 本身已经使用了,具有一定特殊的含义,你就不能再用它们充当变量名啊方法名啊什么的。包括(按字母排序):break、case、catch、continue、default、delete、do、else、finally、for、function、if、in、instanceof、new、return、switch、this、throw、try、typeof、var、void、while、with 等。、
交互:alert、prompt 和 confirm
由于我们将使用浏览器作为我们的演示环境,让我们看几个与用户交互的函数:alert,prompt 和confirm。
alert
这个我们前面已经看到过了。它会显示一条信息,并等待用户按下 “OK”。
例如:
alert("Hello");
弹出的这个带有信息的小窗口被称为 模态窗。“modal” 意味着用户不能与页面的其他部分(例如点击其他按钮等)进行交互,直到他们处理完窗口。在上面示例这种情况下 —— 直到用户点击“确定”按钮。
prompt
prompt
函数接收两个参数:
result = prompt(title, [default]);
浏览器会显示一个带有文本消息的模态窗口,还有 input 框和确定/取消按钮。
-
title
显示给用户的文本
-
default
可选的第二个参数,指定 input 框的初始值。
语法中的方括号 [...]
上述语法中 default
周围的方括号表示该参数是可选的,不是必需的。
访问者可以在提示输入栏中输入一些内容,然后按“确定”键。然后我们在 result
中获取该文本。或者他们可以按取消键或按 Esc 键取消输入,然后我们得到 null
作为 result
。
prompt
将返回用户在 input
框内输入的文本,如果用户取消了输入,则返回 null
。
举个例子:
let age = prompt('How old are you?', 100);
alert(`You are ${age} years old!`); // You are 100 years old!
IE 浏览器会提供默认值
第二个参数是可选的。但是如果我们不提供的话,Internet Explorer 会把 "undefined"
插入到 prompt。
我们可以在 Internet Explorer 中运行下面这行代码来看看效果:
let test = prompt("Test");
所以,为了 prompt 在 IE 中有好的效果,我们建议始终提供第二个参数:
let test = prompt("Test", ''); // <-- 用于 IE 浏览器
confirm
语法:
result = confirm(question);
confirm
函数显示一个带有 question
以及确定和取消两个按钮的模态窗口。
点击确定返回 true
,点击取消返回 false
。
例如:
let isBoss = confirm("Are you the boss?");
alert( isBoss ); // 如果“确定”按钮被按下,则显示 true
总结
我们学习了与用户交互的 3 个浏览器的特定函数:
-
alert
显示信息。
-
prompt
显示信息要求用户输入文本。点击确定返回文本,点击取消或按下 Esc 键返回
null
。 -
confirm
显示信息等待用户点击确定或取消。点击确定返回
true
,点击取消或按下 Esc 键返回false
。
这些方法都是模态的:它们暂停脚本的执行,并且不允许用户与该页面的其余部分进行交互,直到窗口被解除。
上述所有方法共有两个限制:
- 模态窗口的确切位置由浏览器决定。通常在页面中心。
- 窗口的确切外观也取决于浏览器。我们不能修改它。
这就是简单的代价。还有其他一些方法可以显示更漂亮的窗口,并与用户进行更丰富的交互,但如果“花里胡哨”不是非常重要,那使用本节讲的这些方法也挺好。