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