JavaScript是一门脚本语言,最早只是用于简单的前端验证,但如今它的功能在已经不限于此。发展到今天,JavaScript和HTML、CSS并称为前端技术的三大件,是前端技术不可或缺的一环。但是与HTML和CSS等标记语言不同,JavaScript是一门真正的编程语言,所以学起来更应该重视。
JavaScript最早由Netscape公司发明,后来因为该公司与Sun公司(Java语言的创造公司,后被Oracle公司收购)合并,所以改名JavaScript。但其实它的语法风格跟Java并不相像。JavaScript的标准是ECMAscript,也就是我们经常听说的ES。
一、JavaScript的书写位置
1.写在标签的属性中
类似CSS的行内样式,比如下面这个代码
<a href="javascript:alert('执行链接中的代码')">点击执行</a>
这样的写法会导致代码的耦合严重,不利于后期代码的维护
2.写在<script>标签中
也类似CSS,在html文件的<head>标签当中新建一个<script></script>标签,在里面书写js的代码即可。
<script>
alert(''hello'') //弹出一个窗口显示hello
</script>
3.写在外部的js文件当中
类似CSS的外部引入,我们额外建一个后缀名为.js的文件,在里面书写js语句,在引入到html文件当中。这样分离式的写法方便后期的维护。
<script src="script.js"></script>//引入语句
需要注意,这里的script标签被用来引入外部js文件后,如果里面还有其他的js语句,会被浏览器直接忽略。所以如果需要,应该新建一个script标签来书写其他js语句。
二、JavaScript的数据类型
js中一共有六种数据类型:
String 字符串:在使用的时候需要添加引号,注意单双引号的使用。
Number 数值:有最大和最小值 js中可以表示的数值的最大值为1.7976931348623157e+308,如果数值超过最大值,则会返回Infinity,表示正无穷
大于零的最小值为5e-324
Null 空值:专门用来指向一个空的对象
Undefined 未定义:声明了一个变量但是未给它赋值
Boolean 布尔值:用于逻辑判断,只有true 和 false两个值
Object 对象:后续面向对象编程会详细说明
注意:前五种数据类型为js的基本数据类型,而Object为引用数据类型。
在js当中,利用typeof来查看数据的类型,例如
var a = null; //js中定义变量前需要加一个var来声明变量
console.log(a);
console.log(typeof a);
三、数据类型的转换
1.转换为String
一般使用toString()方法或者String()函数来进行数据类型的转换
var a = 123;
a = true;
// a = null;
// a = undefined;
b = a.toString();
console.log(typeof a);
console.log(a);
console.log(typeof b);
console.log(b);
var c = 123;
c = null;
c = undefined;
c = String(c);
console.log(typeof c);
console.log(c);
null和undefined类型的数据没有toString()方法,而String函数则对这些数据类型都适用。
2.转换为Number
如果是直接转换,那么对于布尔值,true对应1,false对应0。null对应0。undefined会返回一个NaN,表示这不是一个数字(Not a Number)。字符串转换为数值,如果是纯数字,直接转换;如果含有非数字内容,返回NaN;如果为空串或者全是空格,返回0。直接转换使用的是Number()函数。
js含提供了两个类型的函数来实现这个转换,parseInt() parseFloat(),从名字上能看出,它们分别提取字符串中的有效的整数和小数部分,将其转换为数值。解析的顺序从左开始,直到右边第一个不是数字的字符为止。
var b = '123.265px';
b = true;
// b = parseInt(b);
b = parseFloat(b);//返回结果123.265
3.转换为Boolean
转换的方法只有一个就是使用Boolean()函数。
只有空字符串会返回false;只有0和NaN会返回false;null和undefined都会返回false;对象也会返回true。
var a = 0;
a = Boolean(a);
console.log(typeof a);
console.log(a);
四、一些补充知识
1.在js中书写其他进制的数字,十六进制要以0x开头,八进制以0开头,二进制以0b开头。
2.js对于大小写十分敏感,所以书写的时候要养成良好的习惯。
3.js进行整数运算的结果比较精确,但是计算浮点数的时候可能会得到一些不够精确的结果,所以一般不要用js来进行高精度的运算。读者可以尝试利用js计算一些简单的浮点数运算,看看结果。
4.js中标识符的命名规则要遵循驼峰命名。首字母小写,其余单词只有首字母大写。
5.js的类型转换跟其他的语言很不一样,可以多多品味。