JavaScript是一种弱类型语言,即变量类型由它的值确定
定义变量需要用关键字 'var'
变量类型:
number,string,Boolean,undefined,null,object(复合类型)
变量、函数、属性、函数参数命名规范
1、区分大小写
2、第一个字符必须是字母、下划线(_)或者美元符号($)
3、其他字符可以是字母、下划线、美元符或数字
获取元素方法
可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量
获取元素的第二种方法
document.getElementsByTagName(''),获取的是一个选择集,不是数组,但是可以用下标的方式操作选择集里面的dom元素。
操作属性的方法
1、“.” 操作
2、“[ ]”操作
属性写法
1、html的属性和js里面属性写法一样
2、“class” 属性写成 “className”
3、“style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”
变量与函数预解析
JavaScript解析过程分为两个阶段,先是编译阶段,然后执行阶段,在编译阶段会将function定义的函数提前,并将var定义的变量声明提前,将它赋值为undefined
定义的函数可以不给名称,这个叫做匿名函数,可以将匿名函数直接赋值给元素绑定的事件来完成匿名函数的调用。
return关键字的作用;
1、返回函数的执行结果
2、结束函数的运行
3、组织默认行为
条件语句 if/else switch(a)/case a
数组方法:
用下标操作数组的某个数据:aList[0];
join() 将数组成员通过一个分隔符合并成字符串
pudh()、pop()从数组的最后增加或删除成员
unshift()和 shift() 从数组前面增加成员或删除成员
reverse() 将数组反转
indexOf() 返回数组中元素第一次出现的索引值
for循环
for(var i=0;i<len;i++)
{
......
}
while循环
var i=0;
while(i<8){
......
i++;
}
字符串处理方法
1、字符串合并操作:“ + ”
2、parseInt() 将数字字符串转化为整数
3、parseFloat() 将数字字符串转化为小数
4、split() 把一个字符串分隔成字符串组成的数组
5、charAt() 获取字符串中的某一个字符
6、indexOf() 查找字符串是否含有某字符
7、substring() 截取字符串 用法: substring(start,end)(不包括end)
8、toUpperCase() 字符串转大写
9、toLowerCase() 字符串转小写
调试程序的方法
1、alert
2、console.log
3、document.title
定时器在javascript中的作用
1、制作动画
2、异步操作
3、函数缓冲与节流
定时器:
setTimeout 只执行一次的定时器
clearTimeout 关闭只执行一次的定时器
setInterval 反复执行的定时器
clearInterval 关闭反复执行的定时器
类型转换
1、直接转换 parseInt() 与 parseFloat()
2、隐式转换 “==” 和 “-”
3、NaN 和 isNaN
变量作用域
变量作用域指的是变量的作用范围,javascript中的变量分为全局变量和局部变量。
1、全局变量:在函数之外定义的变量,为整个页面公用,函数内部外部都可以访问。
2、局部变量:在函数内部定义的变量,只能在定义该变量的函数内部访问,外部无法访问。
封闭函数
封闭函数是javascript中匿名函数的另外一种写法,创建一个一开始就执行而不用命名的函数。
还可以在函数定义前加上“~”和“!”等符号来定义匿名函数
什么是闭包
函数嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制收回
1、将一个变量长期驻扎在内存当中,可用于循环中存索引值
2、私有变量计数器,外部无法访问,避免全局变量的污染
内置对象
1、document
document.referrer //获取上一个跳转页面的地址(需要服务器环境)
2、location
window.location.href //获取或者重定url地址
window.location.search //获取地址参数部分
window.location.hash //获取页面锚点或者叫哈希值
3、Math
Math.random 获取0-1的随机数
Math.floor 向下取整
Math.ceil 向上取整
javascript对象
将相关的变量和函数组合成一个整体,这个整体叫做对象,对象中的变量叫做属性,变量中的函数叫做方法。javascript中的对象类似字典。
创建对象的方法
1、单体
2、工厂模式
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.showname = function(){}
3、构造函数
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
4、原型模式
.prototype
5、继承
.call(this,参数1,参数2);
call和apply:
aa.call('abc',2,3)
aa.apply('abc',[2,3])
区别就是传参方式不同
function
Sclass
(name,age,job){
Fclass
.call(this,name,age);
}
function fclass(name,age){
this.name = name;
this.age = age;
}
fclass.prototype.showname = function(){
alert(this.name);
}
fclass.prototype.showage = function(){
alert(this.age);
}
function sclass(name,age,job)
{
属性用call或者apply的方式来继承
fclass.call(this,name,age);
this.job = job;
}
方法继承:将父类的实例赋值给子类的原型属性
sclass.prototype = new fclass();
sclass.prototype.showjob = function(){
alert(this.job);
}
var tom = new sclass('tom',19,'全栈工程师');
tom.showname();
tom.showage();
tom.showjob();