JavaScript学习日志(2)
javascript数据类型:
字符串string、数字number、未定义Undefined、空Null、布尔Boolean、数组Array、对象Object。
javascript对象:
对象由花括号分隔,在括号内部,对象的属性以名称和值的形式(name:value)来定义,属性由逗号分隔。
对象的创建推荐用var people={Name:'jerry',Age:21,eat:function(){} }
也可以创建对象再追加属性和方法:
var people=new Object();
people.Name='jerry';
people.Age=21;
people.eat=function(){};
定义类:function People(name,age){
this.Name=name;
this.Age=age;
this.eat=function(){};
}
var people=new People();
对象的方法定义了一个函数,并作为对象的属性存储,对象方法通过添加()调用。
function test(){
var person={name:'小明',age:18,eat:function(){ return '吃苹果' }};
alert(person.eat); //function(){return '吃苹果'}
alert(person.eat()); // '吃苹果'
}
javascript变量:
在javascript函数内部声明的变量(使用var)是局部变量,只能在函数内部访问它。
在函数外声明的变量是全局变量,javascript变量的生命期从它们被声明的时间开始,局部变量在函数运行以后被删除,全局变量在页面
关闭后被删除。
向未声明的变量赋值,该变量将被自动作为全局变量声明。
carName=‘BYD'; 将声明一个全局变量carName
函数内未声明即使用的变量 function test(){ carName='BYD' }
在test()被第一次调用之前,carName变量是不存在的即undefined,函数被调用之后,carName将变成全局变量。
javascript==与===区别
1、对于string、number等基础类型,== 和 === 是有区别的
a)不同类型间比较,==是"转化成同一类型后"比较值是否相等,===如果类型不同,其结果不等。
b)同类型比较,直接进行值比较,两者结果一样。
2、对于Array、object等高级类型,==和===没有区别,进行指针地址比较。
3、基础类型与高级类型,==和===是有区别的
a)对于==,将高级转化成基础类型,进行值比较。
b)因为类型不同,===结果为false。
4、!=是==的非运算,!==是===的非运算。
var num=1;
var str='1';
var test=1;
num==test; //true 类型相同,值相同
num===test; //true 类型相同,值相同
num==str; // true 把str转换为数字,两者值相等
num===str; //false 类型不同
for/in循环遍历对象的属性。
JavaScript学习日志(2)的更多相关文章
- javascript学习日志:前言
javascript学习日志系列的所有博客,主要理论依据是<javascript权威指南>(犀牛书第6版)以及<javascript高级程序设计第三版>(红色书),目前js行业 ...
- JavaScript学习日志(六):事件
这篇随笔,深恶痛绝,敲到快结束的时候,凌晨00:19,突然闪退,也不知道是Mac的原因还是chrome的原因,重新打开的时候,以为自动保存有效果,心想没关系,结果他么的只保存了四分之一,WTF?!!! ...
- JavaScript学习日志(五):DOM
一,基本定义 DOM是针对HTML和XML文档的API,根据W3C的HTML DOM标准,html文档中所以内容(无论是元素还是标签还是注释还是元素属性)都是节点. 二,Node类型:每一个节点都含有 ...
- JavaScript学习日志(四):BOM
BOM的核心对象就是window,这一章没什么好说的,总结一些比较常用的: 1,a未定义,a; //报错window.a; //undefined 不能用delete删除全局变量 2,html5不支持 ...
- JavaScript学习日志(一):变量,作用域和内存问题
一,变量分为两种类型:基本类型值和引用类型值,基本类型包括:Undefined, String, Boolean, Null, Number,我们无法给基本类型值添加属性: 二,复制变量值的时候,如果 ...
- JavaScript学习日志:关于js分号
javascript有自动添加分号的功能,但是不是所有情况都会自动添加,要区分: 1,如果语句独占一行 如果当前行内的语句能够被js正确解析,那么就会在句尾添加一个分号. (如何判断是否正确解析?你在 ...
- JavaScript学习日志(1)
javascript用法: 1.HTML中的脚本必须位于<script>与</script>标签之间,可被放置在HTML页面的<body>和<head> ...
- Javascript学习日志(三):闭包
说实话,前面一节的原型和原型链在当初学的时候并没有很头疼,对着高级编程第三版撸了几遍就理解透了,闭包这一节真的挺头疼的,很惭愧,看了差不多十来遍吧,还翻看了网上的其他博客和解释文档,五花八门的表达方式 ...
- JavaScript学习日志(二):面向对象的程序设计
1,ECMAScript不像其他面向对象的语言那样有类的概念,它的对象与其他不同. 2,ECMAScript有两种属性:数据属性和访问器属性.([[]]这种双中括号表示属性为内部属性,外部不可直接访问 ...
随机推荐
- Jenkins的slave异常:Exception in thread "main" java.lang.ClassNotFoundException: hudson.remoting.Launcher
当任务分配到slave上执行时,报如下错误: Parsing POMs Established TCP socket on 38257 maven33-agent.jar already up to ...
- [转]初试visual studio2012的新型数据库LocalDB 及 在visual studio2012中如何使用localDB具体讲解
本文转自:http://www.cnblogs.com/zhangran/archive/2012/08/26/2657864.html 初试visual studio2012的新型数据库LocalD ...
- 错误com.android.ddmlib.AdbCommandRejectedException
错误com.android.ddmlib.AdbCommandRejectedException 学习了:https://blog.csdn.net/u014447072/article/detail ...
- C# 秒数转日期_由秒数得到日期几天几小时_当前日期时间,转换为秒
///<summary> ///由秒数得到日期几天几小时... ///</summary ///<param name="t">秒数</para ...
- javascript 中用到的时间戳函数
JavaScript 获取当前时间戳:第一种方法: var timestamp = Date.parse(new Date()); 例如结果:1280977330000第二种方法: var times ...
- 接口测试框架开发(三):maven+restAssured+Excel(jxl)+testng+extentreports的接口自动化
1.http://www.cnblogs.com/lin-123/p/7151031.html 2.http://www.cnblogs.com/lin-123/p/7151046.html 3.ht ...
- 关于Objective-c和Java下DES加密保持一致的方式
转载自:http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html 最近做了一个移动项目,是有服务器和客户端类型的项目,客户端是要登录才 ...
- Mac下访问windows的共享文件夹
Finder->前往->smb://<user>@<ip>
- WebService 之 协议篇
Web Service 使用的是 SOAP (Simple Object Access Protocol)简单对象访问协议,是交换数据的一种协议规范,是一种轻量的.简单的.基于XML(标准通用标记语言 ...
- 【MVC+MySQL+EntityFramework】查询性能优化笔记
通过在DbContext中定了表之间的关系,查询后在View中通过item.ProjectOverHour来显示关联表数据. modelBuilder.Entity<ProjectOverHou ...