JavaScript和HTML的结合方式
1.采用事件的方式来调用js脚本代码,代码写在字符串中
2.采用定义函数的方式: 用function来定义函数
3.采用引入外部js文件的方式
利用
注意事项:
1.使用第三种方式的时候,就不要在script标签里面写js代码,这里是永远不会执行的
2.一个页面可以有多个script标签,script标签可以放置在任意位置,每个script标签都会执行
3.script标签执行顺序是从上至下的
4.我们还是规定放置在body下面,优先加载html的内容,在执行js部分的代码
变量
js和java一样,也存在全局变量和局部变量,由关键字var声明
变量声明:
1.先声明变量再赋值
var i;
i = 5;
2.同时声明和赋值变量
var s= “xyr”;
var x, y, z = 10;
3.不声明直接赋值
width=5;
变量可以不经声明而直接使用,但这种方法很容易出错,也很难查找排错,不推荐使用
数据类型
JavaScript 拥有动态类型。相同的变量可用作不同的类型
ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String。
undefined
Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。
var x;
变量 x 没有初始值,将被赋予值undefined
null
表示一个空值,与undefined值相等
一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。
alert(null == undefined); //输出 “true”
number
表示一切的数字类型
var num1=23; //整数
var num2=23.0; //浮点数
boolean
true和false
string
一组被引号(单引号或双引号)括起来的文本
var str=“This is a String”;
Function:函数类型
Object:表示所有的引用类型(对象类型) javascript中的对象、数组和null
typeof运算符返回值如下
undefined:变量被声明后,但未被赋值
string:用单引号或双引号来声明的字符串
boolean:true或false
number:整数或浮点数
object:javascript中的对象、数组和null
function: js函数
为什么 typeof 运算符对于 null 值会返回 “Object”。这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。
现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。
typeof() : 获取数据的类型
instancof关键字: 判断左边类型是否是右边类型的实例
如何判断一个类型是否是一个具体的引用类型?
typeof() : 获取数据的类型
instancof关键字: 判断左边类型是否是右边类型的实例
如何判断一个类型是否是一个具体的引用类型?
给定一个Date类型,我希望输出Date
typeof只能够判断原始数据类型和Object类型,不能够判断具体的引用类型,比如说Date类型
解决方式: 先采用typeof判断返回的是否是object类型,如果是就是使用instanceof关键字判断是否是Date类型
alert(typeof(date) == “object”);
if(typeof(date) == “object”){
// 到了这里说明一定是引用类型
if(date instanceof Date){
alert(“Date”);
}
}
常用类型转换
1.Number转String: 3 + “”
2.String转Number:
a.parseInt,parseFloat
b.乘以1
3.Number转Boolean
在JS中,非0其实就是真,0/undefined/null表示假
4.Boolean转Number
boolean值+0
运算符
运算符大部分和Java保持一致,主要区别总结如下
大部分的运算符和Java是一模一样的,但是需要注意以下几个点:
1.= == ===的区别
=: 赋值
==:表示判断内容是否相等
===: 表示判断内容和类型都需要相等
2.js中小数和整数都是Number类型的,所以除法中没有整数的概念,会出现小数
3.js中字符串的加减问题
相加:字符串拼接
相减:内容相减,如果不是一个数字,显示NAN
4.boolean类型在Js中可以参与运算 0表示false,1表示true
5.在Java里面任何的条件都是Boolean类型,在js中的条件表达式可以是任意类型
6.任意类型虽然可以作为条件表达式,类型的结果是非0表示真,0/undefined/null表示假