JavaScript 基础
存在形式:
- Head中
<script>
//javascript代码
</script>
也可以写成:
<script type="text/javascript">
//javascript代码
</script>
- 文件
<script src='js文件路径'> </script>
PS: JS代码需要放置在<body>标签内部的最下方
注释
当行注释
//
多行注释
/* 注释内容 */
变量:
name = 'alex' // 全局变量
var name = 'eric' // 局部变量
写Js代码:
- html文件中编写
- 临时的可以在浏览器的终端 console 中编写
基本数据类型
- 数字
a = 18; - 字符串
a = "name"- 字符串方法
a.chartAt (索引位置)
a.substring (起始位置,结束位置)
a.lenght (获取当前字符串长度)
...
- 字符串方法
- 列表(数组)
a = [11,22,33] - 字典
a = - 布尔类型
true false(小写)
for循环
1. 循环时,循环的元素是索引
a = [11,22,33,44]
for(var item in a){
console.log(item);
}
输出结果:
0
1
2
3
a = {'k1':'v1','k2':'v2'}
for(var item in a){
console.log(item);
}
输出结果:
k1
k2
2. for 循环
a = [11,22,33,44]
for(var i=0;i<a.length;i=i+1){
}
(不支持字典的循环)
3.while 循环
while{
}
条件语句
- if else
if(条件){
}else if(条件){
}else{
}
- switch case
switch(name){
case:'1':
conslie.log(case1);
break;
case:'2':
conslie.log(case2);
break;
default:
conslie.log(case3);
break;
}
== 值相等
1 == '1'
1 != 2
=== 值和类型都相等
1 === 1
1 !== '1'
&& and
|| or
正则表达式
函数:
- 普通函数
function func(arg){
return arg + 1;
}
setInterval('func()', 5000);
- 匿名函数
setInterval(function(){
console.log(123);
}, 5000)
- 自执行函数(无需调用,自动执行)
(function func(arg){
console.log(arg);
})(1)
相当于:
function func(arg){
console.log(arg);
}
func(1)
序列化:
将对象转换为字符串:
JSON.stringify()
将字符串转换为对象类型:
JSON.parse()
转义:
URL 只能使用 ASCII 字符集,当使用了 ASCII 字符集之外的字符就需要转义
客户端(cookie) => 服务器端
将数据经过转义后,保存在 cookie
encodeURL()
encodeURLComponent()
decodeURL()
decodeURLComponent()
escape()
unescape()
eval:
可以执行表达式和代码
时间:
Date 类
var d = Date()
d.getXXX 获取
d.setXXX 设置
作用域:
1.以函数作为作用域(不考虑 let)
2.函数的作用域在函数未被调用之前就已经创建
3.函数的作用域存在作用域链,并且也在被调用之前创建(和在哪调用没有关系)
4.函数内局部变量提前声明(不赋值,为undefined)
示例一:
name = 'bob';
function func(){
var name = 'jack';
function inner(){
var name = 'tom';
console.log(name);
}
inner();
}
func();
执行结果:tom
示例二:
name = 'bob';
function func(){
var name = 'jack';
function inner(){
console.log(name);
}
return inner;
}
var ret = func();
ret();
执行结果:jack
示例三:
name = 'bob';
function func(){
var name = 'jack';
function inner(){
console.log(name);
}
var name = 'tom';
return inner;
}
var ret = func()
ret();
执行结果:tom
示例四:
function func(){
console.log(name);
}
func();
程序报错
function func(){
console.log(name);
var name = 'bob';
}
func();
执行结果: undefined
JavaScript 面向对象
- this 代指对象
- 创建对象时:new()
function Foo(name){
this.name = name;
this.SayName = function(){
console.log(this.name);
} // 这个方法会存在每一个实例化的对象当中
}
var obj = new Foo('bob');
obj.SayName()
原型
方法存在原型中就不会储存在每一个对象当中
function Foo(name){
this.name = name;
}
// Foo 的原型
Foo.prototype = {
'SayName': function(){
console.log(this.name)
}
}