现在开始学习JavaScript了,这是第一次JavaScript的笔记。
ECMAScript是JavaScript的标准,但它不等同于JavaScript,也不是唯一被标准化的规范。实际上,一个完整的JavaScript实现,由以下三个不同部分组成:
<html>
<head>
<meta charset="utf-8" />
<title>title>
<script type="text/javascript">
/*
* 控制浏览器弹出一个警告框
*/
alert("哥,你真帅呀!");
/*
* 让计算机在页面中输出一个内容
* document.write()可以向body中输入一个内容
*/
document.write("你看我出不出来~~~");
/*
* 向控制台输出一个内容
* console.log()的作用是向控制台输出一个内容
*/
console.log("你猜我在哪出来呢?");
script>
head>
<body>
body>
html>
上面的图片显示出了alert();
和document.write();
的作用,console.log();
是向控制台输出一个内容我们可以查看控制台:
上面三个语句可以称为三条输出语句:
alert();
。document.write();
。console.log();
。我们需要记住了。
<html>
<head>
<meta charset="UTF-8">
<title>title>
head>
<body>
<button onclick="alert('讨厌,你点我干嘛?')">点我一下button>
body>
html>
<html>
<head>
<meta charset="UTF-8">
<title>title>
head>
<body>
<button onclick="alert('讨厌,你点我干嘛?')">点我一下button>
<a href="javascript:alert('让你点你就点?!')">你也点我一下a>
body>
html>
虽然可以写在标签的属性中,但是他们属于结构与行为的耦合,不方便维护,不推荐使用。
可以将JS代码写到script标签中就类似,CSS代码写到style标签中。
<html>
<head>
<meta charset="UTF-8">
<title>title>
<script type="text/javascript">
alert("我是script标签中的代码!!");
script>
head>
<body>
<button onclick="alert('讨厌,你点我干嘛?')">点我一下button>
<a href="javascript:alert('让你点你就点?!')">你也点我一下a>
body>
html>
推荐使用的方式!!!
注意:script标签一旦用于引入外部文件了,就不能再编写代码了,即使编写了浏览器一会忽略。
如果要编写,需要创建新的script标签。
script标签有一个布尔型属性defer属性,设置该属性能将JavaScript文件延迟到页面解析完毕后再运行。
异步加载JavaScript文件,可以通过script标签中的async属性,让浏览器异步加载JavaScript文件,即在加载JavaScript文件时,浏览器不会暂停,而是继续解析,这样能节省时间,提升响应速度。
async是HTML5新增的布尔型属性,通过设置async属性,就不同考虑script标签的位置!!
/*
多行注释
*/
//单行注释
var age = 18;
。123
是数字,hello
是字符串,在JS中一共有6中数据类型:其中前五种属于基本数据类型,而Object属于引用数据类型。
String字符串,在JS中字符串需要使用引号引起来。如:var str = "hello";
特点:
var str = ' hello ";
\n
。反斜杠作为JavaScript中的转义字符。//数字123
var a = 123;
//字符串123
var b = "123"
console.log(a);
console.log(b);
我们无法在控制台中区分那个是a那个是b,所以我们说:
typeof 变量名
console.log(typeof a);
console.log(typeof b);
特殊:
Number.MAX_VALUE=1.7976931348623157e+308
,如果数值超过了这个最大数值,则会返回一个Infinity
表示正无穷。Infinity
也是一个字面量,使用typeof检查会显示为number。Number.MIN_VALUE
表示它能表示的最小的正值。运算:
在JS中整数的运算基本可以保证精确,如果使用JS进行浮点数运算,可能得到不精确的结果。所以千万不要使用JS进行对精确度要求比较高的运算!!
布尔型(Boolean)仅包含两个固定的数值:ture和false。其中true代表真,false代表假。布尔值主要用来做逻辑判断。
Null类型的值只有一个就是null。它表示空值,定义一个空对象指针。
Undefined类型只有一个值undefined,当声明一个变量,但是并不进行赋值,它的值就是undefined。
指将一个数据类型强制转换为其他的数据类型。
类型转换,主要指将其他的数据类型转换为String、Number、Boolean。
方式一:调用被转换数据类型的toString()
方法
该方法不会影响原变量,它会将转换的结果返回。
但是注意:null和undefined这两个值没有toString()方法,如果调用,他们的方法,则会报错。
方式二:调用String()
函数。使用String()函数做强制类型转换时,对于Number、Boolean实际上就是调用toString()方法,但是对于null和undefined就不会调用toString()方法,他会将null
转换为"null"
,将undifined
转化为"undefined"
。
方式一:使用Number()函数,用法和String()函数一样。
字符串转为数字:
布尔型转为数字:
null转换为数字:0
undefined转换为数字:NAN
方式二:这种方式专门用来对付字符串,parseInt();
、parseFloat();
函数。
parseInt();
可以将一个字符串中的有效的数字内容取出来:先解析位置0出的字符,如果不是有效数字,则直接返回NAN,如果0处的字符是数字,或者可以转换为有效数字,则继续解析位置1处的字符,如果不是有效数字,则直接返回0处的有效数字。以此类推,按从左到右的顺序,逐个分析每个字符,直到发现非数字字符为止。
parseFloat();
的作用和parseInt();
类似,不同的是他可以获得有效的小数。即能识别第一个出现的小数点。
<html>
<head>
<meta charset="UTF-8">
<title>title>
<script type="text/javascript">
var a = "123aes235y";
a = parseInt(a);
console.log(typeof a);
console.log(a);
var b = "123.456dsf";
b = parseFloat(b);
console.log(typeof b);
console.log(b);
script>
head>
<body>
body>
html>
再说一下,在JavaScript中以0开头的数字是八进制数字,以0x开头的数字表示十六进制数字。但是要表示二进制要以0b开头,但有些浏览不支持。
像a = "070"
这种字符转换为数字,有些浏览器会当成八进制,有些浏览器当做十进制,所以要这样表示:parseInt(a,10);
。
Boolean();
函数console.log(Boolean(0));//返回false
console.log(Boolean(1));//返回true
console.log(Boolean("false"));//返回true
console.log(Boolean(""));//返回false
console.log(Boolean(null));//返回false
console.log(Boolean(undefined))l//返回false
注意:
在JS中所有的可以由自己命名的都可以称为是标识符。
_
、美元符号$
。补充:JS底层保存标识符实际上是采用Unicode编码,所以理论上所有的utf-8中含有的内容都可以作为标识符。但是考虑到JavaScript版本的兼容性以及开发习惯,不建议使用双字节中的中文字符命名变量或函数名!!虽然能用但千万别用!!