JavaScript编程基础
写这一篇学习笔记还算是相对轻松的吧,终于,终于遇到了熟悉的知识了,毕竟接触了C++、C#和 Python,虽算不上精通,但也是花费精力去研究过,可以自娱自乐的写点脚本程序玩玩
一向秉承着重复性的工作都能交给计算机去完成的理念来学习编程,所以学习起来还是很有趣的。
废话不多说了,下面开始整理学习笔记,这里也就写写在JS中特有的一些知识吧。
JavaScript基础语法
使用JavaScript
- 在页面中插入代码
<script>
/*Javascript代码*/
</script>
- 使用.js文件
<script src=".js文件相对目录"></script>
由于JavaScript语言是解释型,理论上它放置在HTML页面中的任一位置都可以运行,但通常放置在 body 标签结束之前。
这个和 CSS3 的使用有些类似,可直接内嵌与HTML文件中,也可单独成一个文件,需要使用时通过链接调用。
语法
- 数据类型
- 相当于是把数据类型简化了一些吧,没有什么整形浮点型,长整形,双精度等等这么复杂的定义,6个数据类型包罗万象,算是很不错了。
- 变量定义
这个就更加 nice ,化繁为简,统统只需要使用: var 关键字就好了
需要注意的是:
- 变量名区分大小写
- 一个var 只定义一个变量
- 每行只能放一条 JavaScript 语句
- typeof()函数
- 一共就六种返回结果,与 六种基本 数据类型 还是有那么一丢丢区别的。
数据类型有: null ,而返回结果有:function - 数据类型转换
- 强制类型转换:
Boolean()
Number()
String() - 转换函数
toString():字符串
parseInt():整数
parseFloat():浮点数
函数
- 定义
function functionName(arg0,arg1,…,argN) {…} - 调用
functionName(参数1赋值,参数2赋值,参数3赋值….) - 函数重载
JavaScript不支持函数重载,但是可以利用 arguments.length 检测函数的参数个数,从而实现函数的重载。
function functionName(参数1,参数2,…)
{
if(arguments.length==1){…}
else if(arguments.length==2){…}
...
else{…}
}
- 匿名函数
(function(a, b) {
alert(a + b);
})(2, 3);
即时定义,即时使用,即时销毁释放
- 返回值
可以是任何数据类型,使用return语句可以返回函数值并退出函数,没有明确的返回值,或调用了没有值的return语句,那函数的返回值就是undefined
运算符、条件语句、循环语句这些各种语言都大同小异,就不写了
JavaScript对象基础
- Object对象
Object 为所有对象的基类,可以通过 function 附加属性和方法
var myObject1=new Object();
var myObject2={};
这两种方式等效 - 内置对象
- Math对象:用来处理数学运算,包含各种函数绝对值、三角函数、随机数等等
- Date对象:处理日期和时间,获取时间与设置时间
- RegExp对象:正则表达式匹配,之前学习python爬虫时着重看过,就不赘述
- Array对象:数组对象,可以嵌套各种类型,动态数组,长度是可变
- String对象:字符串对象,可做分片、匹配等操作
- Window对象:
(1) 各种对话框:
window.alert(警告对话框)、window.confirm(确认对话框)、window.prompt(提示用户输入的对话框)
使用时可以去掉window,直接使用:alert、confirm、prompt
(2)间隔
setInterval(函数名或语句,间隔的毫秒数):间隔一定时间自动执行函数或者其他语句
clearInterval(间隔id):终止上述自动执行的命令
(3)延时
setTimeout(函数名或语句,间隔的毫秒数)
clearTimeout(延时id):与间隔类似
- 自定义类或对象
- prototype属性
每个对象都有该属性,可以为对象增加或者覆盖方法
//为String类扩展一个print方法
String.prototype.print = function() {
alert(this);
};
var testString = "hello html5";
testString.print();
- 混合的构造器/原型方式实现自定义类
//Student类的构造函数
function Student(name, age) {
this.name = name;
this.age = age;
}
//为Student类添加一个showStuInfo方法
Student.prototype.showStuInfo = function(){
/*代码*/}
- this关键字
当有 new 关键字时,function一定是类的构造器。当Student作为一般函数使用时,this指向window对象,而作为构造器时,this指向Student对象,在构造器中,类的属性前面一定记得加this关键字
JSON 语法规则
- 数据为 键/值 对。
- 数据由逗号分隔。
- 大括号保存对象
- 方括号保存数组
JSON序列化与反序列化
JSON.parse():反序列化成为JSON对象
JSON. stringify():序列化为字符串
该部分在爬虫的学习过程中常常接触,也还比较熟悉