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有两种属性:数据属性和访问器属性.([[]]这种双中括号表示属性为内部属性,外部不可直接访问 ...
随机推荐
- LInux 分割合并文件
有两种方式, 第一种使用dd命令 第二种使用split dd命令是linux下一个非常有用的磁盘命令.它可以将指定大小的块拷贝成一个文件,并在拷贝的同时执行指定的转换.UNIX已经提供了文件切割功能, ...
- 转:关于Android机型适配这件小事儿
http://www.umindex.com/devices/android_resolutions 大家都知道Android机型分裂严重,在开发Android App的时候永远都面临适配N多机型的问 ...
- [Android Pro] 调用系统相机和图库,裁剪图片
private static final int PHOTO_REQUEST_TAKEPHOTO = 1;// 拍照 private static final int PHOTO_REQUEST_GA ...
- MyEclipse 集成 Gradle开发环境
一.上Grandle官网下载Gradle,地址:http://www.gradle.org/downloads 如果只是运行只下载gradle-2.6-bin.zip 就可以了,如果为了扩展开发的话就 ...
- lua coroutine
Lua中协程都放在表coroutine中. Lua协程的四个状态 挂起(suspended):一个协程被创建的时候,处于挂起状态,不会自动运行. 运行(running):coroutine.resum ...
- 在LoadRunner中进行Base64的编码和解码
<Base64 Encode/Decode for LoadRunner>这篇文章介绍了如何在LoadRunner中对字符串进行Base64的编码和解码: http://ptfrontli ...
- github 管理图示
- Twelves Monkeys (multiset解法 141 - ZOJ Monthly, July 2015 - H)
Twelves Monkeys Time Limit: 5 Seconds Memory Limit: 32768 KB James Cole is a convicted criminal ...
- JavaScript Map 实现
//定义map function Map() { this.container = {}; } //将key-value放入map中 Map.prototype.put = function(key, ...
- 一个简单的python爬虫(转)
# -*- coding: utf-8 -*- #--------------------------------------- # 程序:百度贴吧爬虫 # 版本:0.1 # 作者:why # 日期: ...