JavaScript是什么?javascript
是一门脚本语言(不须要编译,直接执行)html
是一门解释性语言前端
是一门动态类型的语言java
是一门基于对象的语言浏览器
JavaScript分为三个部分函数
1.ECMAScript 标准----js的基本语法spa
2.DOM---Document Object Model 文档对象模型(一套操做页面元素的API)code
DOM能够把HTML看做是文档树,经过DOM提供的API对树上的节点进行操做htm
3.BOM---Browser Object Model 浏览器对象模型(一套操做浏览器功能的API)对象
经过BOM操做浏览器窗口,好比(弹出框,控制浏览器跳转,获取分辨率等)
JavaScript和HTML、CSS的区别
一、HTML:提供网页的结构,提供网页中的内容
二、CSS:用来美化网页
三、JavaScript:能够用来控制网页内容,给网页增长动态的效果
JavaScript的书写位置
1.写在行内
<input type="button" value="按钮" onclick="alert('Hello World')" />
2.写在script标签中
<head> <script> alert('Hello World!'); </script> </head>
3.写在外部js文件中,在页面引入
<script src="main.js"></script>
js代码须要注意的问题
在一对javascript标签的代码中有错误的代码时,那么在错误代码后的js代码都不会执行
若是第一对Script中有错误的代码,不会影响后面的Script标签中的js代码执行
var age;
var age; age = 18;
同时声明多个变量
var age, name, sex; age = 10; name = 'zs';
同时声明多个变量而且赋值
var age = 10, name = 'zs';
变量的命名规则和规范
规则--必须遵照的,不遵照会出现报错
由字母、数字、下划线、$符号组成,不能以数字开头
不能用关键字和保留字,例如for、while。
区分大小写
规范--建议遵照,不遵照不会报错
变量名必须有意义
遵照驼峰命名法,首字母小写,后面单词的首字母大写
数据类型
在源代码中一个固定值的表示法
数值的字面量:8,9,0
字符串字面量:“前端”,“小田”
布尔字面量:true,false
NaN: not a numberNaN与和任何值都不相等,包括它自己is NaN: is not a number注意:不要用小数验证小数不要使用NaN判断是否是NaN,应该使用is NaNvar num; console.log(num+10==NaN);//---false
num+10不是一个数字 NaN 俩个不是数字的值没法判断相等
如何验证这个结果是否是NaN,应该使用isNaN()//使用isNaN()验证是一个数字时,结果为false
使用isNaN()验证不是一个数字时,结果为true须要表示十进制:正常数字须要表示八进制:以0开头须要表示十六进制:0x开头
字符串的长度:使用length属性能够获取字符串的长度
字符串的拼接:使用+链接俩边只要有一个是字符串,那么+就是字符串拼接功能
俩边若是都是数据,那么就是算数功能
什么状况下结果为undefined?变量声明了,没有赋值函数没有明确返回值,若是接受了,结果是undefined若是一个变量的结果是undefined和一个数字进行计算,结果:NaN,不是一个数字,也没有意义
var age = 18; console.log(typeof age); // 'number'
console.log(typeof(age));
数据类型转化
如何使用谷歌浏览器,快速的查看数据类型?
字符串的颜色是黑色的,数值类型是蓝色的,布尔类型也是蓝色的,undefined和null是灰色的
.toString();
var num = 5; console.log(num.toString());
String();
若是变量是有意义--调用.toString()使用转换
若是变量没有意义--使用String()转化
var num2;//值为undefined,无心义 console.log(num2.toString()); var num3=null; console.log(num3.toString());//以上会报错 这个能够 var num2; console.log(String(num2)); var num3=null; console.log(String(num3));
Number();转数字
Number()能够把任何值转化成数值,若是要转换的字符串中有一个不是数值的字符,返回NaN
parseInt();转整数
var num1 = parseInt("12.3abc"); // 返回12,若是第一个字符是数字会解析知道遇到非数字结束 var num2 = parseInt("abc123"); // 返回NaN,若是第一个字符不是数字或者符号就返回NaN
parse Float();转小数
parseFloat()把字符串转换成浮点数
parseFloat()和parseInt很是类似,不一样之处在与
parseFloat会解析第一个. 遇到第二个.或者非数字结束
若是解析的内容里只有整数,解析成整数
+,-0等运算
var str = '500';
console.log(+str); // 取正
console.log(-str); // 取负
console.log(str - 0);
Boolean()
0 ''(空字符串) null undefined NaN 会转换成false 其它都会转换成true
操做符
一些符号---用来计算
算数运算符:+ - * / %
算数运算符表达式:由算数运算符链接起来的表达式
只有一个操做数的运算符 ++ --
++ 自身加一
-- 自身减一
说明:var num=1; ++num以后num的值为2,++num的值2
num++以后的num值为2,num++的值为1
表达式1 ? 表达式2 : 表达式3
是对if……else语句的一种简化写法
复合运算表达式:由复合运算符链接起来的表达式
关系运算符:> < >= <= ==不严格的 ===严格 !=不严格的不等,!==严格的不等
关系运算表达式:由关系运算符链接起来的表达式
关系运算表达式的结果是布尔类型
逻辑运算符:
&&:与 俩个操做数同时为true,结果为true,不然都是false
|| : 或 俩个操做数有一个为true,结果为true,不然为false
!: 非 取反
赋值运算符
= += -= *= /+ %=
例如: var num = 0; num += 5; //至关于 num = num + 5;
优先级从高到底 1. () 优先级最高 2. 一元运算符 ++ -- ! 3. 算数运算符 先* / % 后 + - 4. 关系运算符 > >= < <= 5. 相等运算符 == != === !== 6. 逻辑运算符 先&& 后|| 7. 赋值运算符