JavaScript学习(一)——JS基础
1、输出语句:alert()、document.write()、console.log(),会有结果显示
2、Js代码编写的位置:
(1)可以将Js代码写在标签的onclick属性中
(2)可以将JS代码卸载超链接的href属性中,点击超链接时,会执行Js代码
以上两种写在标签的属性中的方法,尽管可行,但是他们属于结构与行为的耦合,不方便维护,所以不推荐使用
(3)可以将JS代码写在标签中
(4)可以将JS代码写在外部文件中,通过script标签引用。写到外部文件中的JS文件可以在不同的文件中引用,也可以利用到浏览器的缓存机制。推荐使用
srcipt标签一旦用于引入外部文件了,就不能再编写代码,即使写了浏览器也会忽略,如果需要可以创建一个新的script标签编写内部代码。
3、字面量和变量
字面量:一些不可改变的值,但是一般都不会直接使用字面量
变量:变量可以用来保存字面量,而且变量的值可以任意改变的,变量更加方便使用,所以在开发中都是通过变量去保存一个字面量,而很少直接使用字面量
声明变量:
在js中使用var关键字:
声明一个变量:var a;
为变量赋值 a=123
声明和变量同时进行:var a =123;
4、标记符:在js中所有可以由我们自主命名的都可以称为标识符
5、数据类型:5567数据类型指的都是字面量的类型
六种数据类型:String 字符串、Number 数值、Boolean 布尔值、Null 空值、Undefined 未定义、Object 对象
基本数据类型:String 字符串、Number 数值、Boolean 布尔值、Null 空值、Undefined 未定义
引用数据类型:Object 对象
(1)String 字符串:在JS中字符串需要用引号引起来,使用单引号和双引号都可以,没什么区别,但是不要混着用
var str = ‘hello’
注意:引号不要嵌套,即双引号里面引用双引号
在字符串中我们可以使用\作为转移符号,当表示特殊符号时可以使用\ 进行转义
(2)Number 数值:在Js中,所有的数值都是Number类型,包括整数和浮点数(小数)
var a = 123 //数字123
var b = "123" //字符串123
typeof:用运算符来检查一个变量的类型
语法:typeof 变量
检查字符串时,返回string
检查数值时,返回number
Js中可以表示数字的最大值:Number.MAX_VALUE
如果使用Number表示的数字超过了最大值,则会返回一个Infinity,表示正无穷。使用typeof检查Infunity,会返回Number
NaN:表示一个特殊的数字,表示Not a Number,用typeof检查,会返回Number
Js中表示0以上的最小值:Number.MIN_VALUE
在JS中整数的运算基本都可以保证精确
如果使用JS进行浮点元素,可能得到一个不精确的结果,所以千万不要用JS进行对精确度要求比较高的运算
(3)Boolean:布尔值只有两个:true false;主要用来逻辑判断
使用typeof检查一个布尔值时,会返回boolean
(4)Null :类型的值只有一个,就是null
这个值专门用来表示一个空的对象
使用typeof检查一个null值时,会返回一个object
(5)Undefined(未定义),它的类型的值只有一个,就是undefined
当声明一个变量,但是并不给变量赋值时,它的值就是undefined
使用typeof检查一个undefined时,会返回一个undefined
(6)强制类型转换:指将一个数据类型强制转换为其他数据类型
类型转换指的是,将其他的数据类型,转换为String,Number,Boolean
a、将其他数据类型转换为String
方法一:调用被转换数据类型的toString()方法,该方法不会影响到原变量,它会将转换的结果返回
注意:null,undefined这两个值没有toString()方法,,如果调用他们的方法,会报错
var a = 123;
a.toString();
console.log(typeof a) //string
console.log(a) //123
方法二:调用String()函数,并将转换的数据作为参数传递给函数
使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined 就不会调用toStirng()方法,它会将null直接转换为“null”,将undefined直接转换为"undefined"
var a =123;
a = String(a)
console.log(typeof a) //string
console.log(a) //123
b、将其他数据类型转换为Number
方法一:使用number()函数
字符串 ——>数字
如果是纯数字的字符串,则直接将其转换为数字
如果字符串中有非数字的内容,则转换为NaN
如果字符串是一个空串或者是一个全是空格的字符
var a= "123";
var b="abb"
a = Number(a);
b =Number(b )
console.log(typeof a) //Number
console.log(a) //123
console.log(typeof b) //Number
console.log(b) //NaN
布尔 ——>数字
true 转换成 1
false 转换成 0
Null——>数字0
undefined ——>数字NaN
方法二:这种方法专门用来对付字符串
parseInt() 把一个字符串转换为一个整数,可以把一个字符串中有效的整数内容取出来,然后转换为Number
parseFloat() 把一个字符串转换为一个浮点数:和parseInt()类似,不同的是,它可以获取有效的小数
var a= "123px";
a = parseInt(a);
var b= "123px123";
b = parseInt(b);
var c= "123.123";
c = parseFloat(b);
console.log(typeof a) //Number
console.log(a) //123
console.log(typeof b) //Number
console.log(b) //123
console.log(typeof c) //Number
console.log(c) //123.123
如果对非String使用parseInt()或parseFloat()
它会先将其转换为String,然后操作
var a= "true";
a = parseInt(a);
console.log(typeof a) //Number
console.log(a) //NaN
c、其他进制的数字
如果需要表示16进制的数字,则需要以0x开头’
如果需要表示8进制的数字,则需要以0开头’
如果需要表示2进制的数字,则需要以0b开头’
d、将其他数据类型转换为Boolean:使用Boolean()函数
数字 ——>布尔:除了0和NaN,其余的都是true
字符串——>布尔:除了空串,其余的都是true
null 、undefined——>布尔 :都会转换为false
var a =123; //true
var a =-123; //true
var a =0; //false
var a =NaN; //false
//调用Boolean()函数来将a转换为布尔值
a = Boolean(a);
console.log(typeof a); //boolean
console.log(a); //true