JS基础
JS代码需要编写在script标签中
<script>
/*控制浏览器弹出一个警告框*/
alert("这是我的第一行JS代码");
/*让计算机在页面中输出一个内容
document.write()可以向body中输出一个内容
*/
document.write("hello");
/*向控制台输出一个内容
console.log()向控制台输出
*/
console.log("world");
</script>
语法规则:
-
单行注释://
-
多行注释:/**/
-
JS严格区分大小写
-
JS每一条语句以分号结尾(;)如果不写分号,浏览器会自动添加,但是会消耗一些系统资源
-
JS会忽略多个空格和换行
-
在JS中使用var来声明变量
var a; -
标识符可以含有字母、数字、_、$ 标识符不能是ES中的关键字或保留字
标识符一般采用驼峰命名法(首字母小写,每个单词开头字母大写,其余字母小写)
JS数据类型
基本数据类型六种,最基本数据类型五种(除object对象)
检查一个变量的类型
console.log(typeof a);
String 字符串
JS中字符串需要使用引号引起来(双引号单引号都可,但是不能混着用)
引号不能嵌套,双引号不能放双引号,单引号不能放单引号,但可以外双内单或外单内双
var str="hello";
当表示一些特殊符号时可以使用\进行转义
" 表示"
' 表示'
\n 换行
\t 制表符(相当于TAB键)
\表示\
\\表示\
\\\表示\\
Number 数值
- 包括整数和浮点数
- JS可以输出的最大值是Number.MAX_VALUE,约等于1.79769e+308 最小值是Number.MIN_VALUE(大于0的最小值),约等于5e-324
- 如果使用Number表示的数字超过了最大值,则会返回一个Infinity(表示正无穷), -Infinity(表示负无穷)
- 使用时不要加引号,直接a=Infinity
- 使用 typeof 检查 Infinity 也会返回Number
- NaN是一个特殊的数字,表示 not a number,使用 typeof 检查也会返回 Number
Boolean 布尔值
布尔值只有两个,主要来做逻辑判断
true为真
false为假
var bool=true;
Null 空值
Null类型值只有一个,就是null
专门表示一个为空的对象
使用 typeof 检查会返回 object
Undefined 未定义
类型值只有一个,就undefined
当声明一个变量,但未给变量赋值时,它的值就是undefined
使用 typeof 检查也会返回 undefined
Object 对象
- 内建对象:由ES标准中定义的对象,在任何的ES的实现中都可以使用 如:Math String Number...
- 宿主对象:由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象 如:BOM DOM
- 自定义对象:由开发人员自己创建的对象
强制类型转换
主要是将其他数据类型转换为string、number 、boolean
转换为string
-
调用被转换数据类型的toString()方法 该方法不会影响到原变量,它会将转换的结果返回 注:以后提到调用就用"."
var a=123; var b=a.toString();null和undefined这两个值没有toString,如果转化为string时用法一,会报错
-
调用String函数
a=123; a=String(a);
转换为Number
分类
- 使用Number()函数 如果字符串中有非数字的内容,转数字时,转换为NaN 如果字符串是一个空串或者是一个全是空格的字符串,则转换为0 true转为1,false转为0 null转为0 undefined转为NaN
- parseInt() 把一个字符串中有效的整数内容取出来(遇到除数字以外的字符,停止识别),转换为一个number整数 parseFloat() 把一个字符串转换为一个浮点数 对于非string使用parseInt() 和parseFloat(),会先将其转换为string再操作
创建对象
var obj=new Object();
var obj ={};
//也可以用对象字面量创建对象,对象字面量的属性名可以加引号也可以不加
//语法:{属性名:属性值,属性名:属性值,,,}
注: 用new调用的函数,是构造函数constructor 构造函数是专门用来创建对象的函数 使用typeof检查一个对象时,会返回object
在对象中保存的值被称为属性,属性也可以是对象 向对象添加属性 语法:对象.属性名=属性值;
如果要使用特殊的属性名,不能采用.的方式来操作 需要使用另一种方式: 语法:对象【“属性名”】=属性值 读取也要采用这种方式
例:向a中添加一个name属性
var a=new Object();
a.name="孙悟空";
a.gender="男";
a.age=18;
读取对象中的属性
console.log(a.gender);
console.log(a.hello);
如果读取对象中没有的属性,不会报错而是会返回undefined
修改对象中的属性
语法:对象.属性名=新值
删除对象的属性
语法:delete 对象.属性名
delete a.name;
in运算符
可以检查一个对象中是否含有指定的属性 如果有返回true,没有返回false 语法: “属性名” in 对象
例:检查obj中是否含有test2属性
console.log("test2" in obj);
转换为Boolean
只有一种方式,使用boolean() 函数
- 数字转布尔 0和NaN是false 其他数字是true
- 字符串转布尔 空字符串是false 其余都是true
- null和undefined都会转换为false
- 对象也会转换为true