一个完整的JavaScript应由以下三个部分构成:
ECMASctipt DOM DOM
解释型语言
类似于C和Java的语言结构
动态语言
基于原型的面向对象
——JS代码需要编写到script标签中
<script type="text/javascipt">
//控制浏览器弹出一个警告框
alert("你是猪");
//让计算机在页面上输出一个内容·
//document.write()可以向body中输出一个·内容·
document.write("你看我出不出来");
//向控制台输出一个内容
//console.log()的作用是向控制台输出一个内容
console.log("你猜我在哪?");
</script>
<!--
script标签一旦用于引入外部文件了,就不能在编写代码了,即使编写了浏览器也会忽略
如果需要则可以在创建一个新的script标签用于编写内部代码
-->
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript">
alert("我是内部的js代码");
</script>
标识符
在JS中所有的可以有我们自主命名的都可以称为标识符
例如:变量名,函数名,属性名都属于标识符
命名一个标识符需要遵守如下规则:
1.标识符中可以含有字母·,数字,_.$
2.标识符不能以数字开头
3.标识符不能是ES中的关键字或保留字
4.标识符一般都使用驼峰命名法
5.在字符串中可以使用\表示转义字符
\n 表示换行
var str ="hello";
str = "我说:"今天天气不错"";
str = "\";
alert("str");输出字符串
alert(str);输出变量
数据类型指的是字面量的类型
在JS中一共有6种数据类型
String 字符串
Number 数值
Boolean 布尔值
Null 空值
Undefined 未定义
Object 对象
其中 String ,Number ,Boolean,Null , Undefined属于基本数据类型
而Object属于引用数据类型
可以使用typeof来检查一个变量的类型
var a= "bcd";
var b = 134;
console.log(typeof b);
NaN是一个特殊的数字
强制类型转换
只将一个数据类型强制转换为其它数据类型
类型转换主要指,将其他数据类型转换为String,Number,Boolean
将其他的数据类型转换为String
<script type="text/javascript">
/*
将其他的数据类型转换为String
方式一:
调用被转换数据类型的toSting()方法
该方法不会影响到原变量,他会将转换的结果返回
注意:null和undefined这两个值没有toSting方法
*/
var a = 123;
a = a.toString();
console.log(typeof a);
console.log(a);
/*
方法二:
调用String()函数,并将被转换的数据作为参数传递给函数
使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toSting()方法
但是对于null和underfined,就不会调用toSting()方法
他会将null和underfined直接转化为"null"和"underfined"
*/
a = 456;
a = String(a);
console.log(typeof a);
console.log(a);
var b= null;
console.log(typeof b);
console.log(b);
</script>
将其他的数据类型转化为Number
/*
将其他的数据类型转化为Number
使用Number()函数
-字符串--> 数字
1,如果是纯数字的字符串,则直接将其转化为数字
2,如果是字符串中有非数字的内容,则将其转化为NaN
3,如果字符串是一个空串或者是一个全是空格的字符串,则转化为0
-布尔-->数字
true 转化为1
false 转化为 0
-null--> 数字 0
- underfined--> 数字NaN
*/
var c = "789";
c = Number(c);
console.log(typeof c);
console.log(c);
c = "78a";
c = Number(c);
console.log(typeof c);
console.log(c);
c = null;
c = Number(c);
console.log(typeof c);
console.log(c);
c = true;
c = Number(c);
console.log(typeof c);
console.log(c);
//调用parseInt()函数将a转化为Number
/*
parseInt()可以将一个字符串中的有效整数取出来
然后转化为Number
*/
c = "123fj";
c = parseInt(c);
console.log(typeof c);
console.log(c);
/*
parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数
*/
c ="123.456fj";
c = parseFloat(c);
console.log(typeof c);
console.log(c);
进制转化
/*
在JS中,如果需要表示16进制的数字,则需要0x开头
如果需要表示8进制的数字,则需要0开头
*/
//16进制
a = 0x10;
//8进制
a = 070;
console.log(a);
将其他的数据类型转化为Boolean
使用Boolean()函数
/*
将其他的数据类型转化为Boolean
-使用Boolean()函数
-数字-->布尔
除了0和NaN,其余的都是true
- 字符串-->布尔
除了空串,其余的都是true
-null 和 underfined都会转化为 false
对象也会转化为true
*/
var a = 123;//true
a = -123;//true
a = 0;//false
a = Infinity;//true
a = NaN;//false
a = Boolean(a);
a = "";
a = Boolean(a);
a = null;
a = Boolean(a);
console.log(typeof a);
console.log(a);
自增和自减
自增分成两种:后++(a++)和前++(++a)
无论是a++还是++a,都会立即使原变量的值自增1;
不同的是a++和++a的值不同;
a++的值等于原变量的值(自增前的值)
++a的值等于圆水泥变量的新值(自增后的值)
三种逻辑运算符
!非
所谓非运算就是对一个布尔值值进行取反操作
&&与
||或
条件运算符
条件运算符也叫三元运算符
语法:
条件表达式?语句1:语句2;
执行的流程:
条件运算符在执行时,首先对条件表达式进行求值,
如果该值为true,则执行语句1,并返回知心话结果;
如果该值为false,则执行语句2,并返回知心话结果;
true?alert("语句1"):alert("语句2");
false?alert("语句1"):alert("语句2");
//获取a b c中的最大值
var a = 10;
var b = 20;
var c = 30;
//a>b ? alert("a大"):alert("b大");
var max = a > b ? a : b ;
max = max > c ? max : c ;
//不推荐
// var max = a > b ? (a > c ? a : c ) : (b > c ? b : c );
console.log("max = "+ max);
优先级
在JS中运算符也有优先级
在JS中有一个运算符优先级的表
表中越靠上优先级越高
优先级一样从左往右
代码块
JS种的代码块中有分组的作用,没有其他用途
流程控制语句
按顺序从上往下依次执行