1.var 变量

 <script type="text/javascript">
var a = "hong";
var fun = function () {
var a = "aa";
console.log(a);
}
console.log(a); //hong
fun(); //aa
</script>

有局部变量与全局变量同名,在方法内优先使用局部变量

 <script type="text/javascript">
var a = "hong";
var fun = function () {
a = "aa";
console.log(a);
}
console.log(a); //hong
fun(); //aa
console.log(a); //aa
</script>

可以看出在方法中对全局变量进行了修改

 <script type="text/javascript">
var fun = function () {
a = "aa";
console.log(a);
}
// console.log(a); //hong
fun(); //aa
console.log(a); //aa
</script>

在这里a没有var修饰,它是隐式的全局变量

<script type="text/javascript">
var a = "hongda";
function fun() {
console.log(a);
var a = "aaa";
console.log(a);
}
fun(); //undefined aaa
</script>

在这里要注意var的声明,在方法内部不管在什么地方声明,都跟它们在函数的顶部声明一样

  function fun() {
var a = b = c = ; //这样错误,b,c都是隐式的全局变量了
var aa, bb,
cc = "hongda",
dd = ; //这样是好的
}

查看全局变量与隐式全局变量

 <script type="text/javascript">
var a = "hongda";
b = "bb";
console.log(a); //hongda
console.log(b); //bb
delete (a);
delete (b);
console.log(a); //hongda
console.log(b); //b不存在了,已经被删除了
</script>

在技术上,隐式全局变量并不是真正的全局变量,但它们是全局对象的属性。属性是可以通过delete操作符删除的,而全局变量是不能的,但全局变量也是window的属性

为什么隐式全局变量可以被删除,而全局变量不可以被删除?

 <script type="text/javascript">
function f() {
this.aa = "hongda";
}
f.prototype.bb = "bb";
var ff = new f();
console.dir(ff);
delete (ff.aa);
delete (ff.bb);
console.dir(ff);
</script>

可以发现函数内部的aa被删除了

隐式全局变量可以被删除是不是这样的关系,我也不清楚?

js函数的声明:

  function fun() {
console.log("fun");
console.log(typeof fun);
} var f = function () {
console.log("fun2");
} var f2 = function fu() {
console.log("fun3");
console.log(typeof fu);
}
fun();
f();
f2();
console.log(typeof fu);

大概就是这样的三种方式,

第一种,直接声明一个函数

第二种,先声明一个变量f,再声明一个匿名函数,将匿名函数赋值给变量f,赋值以后f的类型才为function

第三种,先声明一个变量f2,再声明一个函数fu,只是这个fu只能在该函数的内部使用,不能在外部使用

2.for循环

<script type="text/javascript">
var array = [, , , , , , , , ];
for (var i = ; i < array.length; i++) {
console.log(i + ":" + array[i]);
}
var obj = { name: "hongda",
age: ,
country: "china",
say:function(){alert("fd");}
}
for (var o in obj) {
console.log(o + ":" + obj[o]);
}
for (var i in array) {
console.log(i + ":" + array[i]);
}
</script>

一般应用时,使用for in 遍历对象内部的属性,使用for()来遍历数组,for in 也可以用来遍历数组,因为数组也是个对象,但for in 遍历对象属性是不一定是顺序的,所以数组还是使用for()好

3.hasOwnProperty

就是去除对象内部从相对应的prototype中获取的属性

http://www.cnblogs.com/hh54188/archive/2013/05/12/3074358.html

http://www.cnblogs.com/TomXu/archive/2011/12/28/2286877.html

JavaScript 小知识的更多相关文章

  1. JavaScript小知识

    1.<script>标签的出现使整个页面因脚本解析.运行而出现等待: 2.合并脚本,每个 HTTP请求都会产生额外的性能负担,下载一 个 100KB 的文件比下载四个 25KB的文件要快: ...

  2. javascript小知识1 this的用法

    函数的应用: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  3. Javascript基础知识总结一

    Javascript基础知识总结一 <!DOCTYPE html> <html> <head lang="en"> <meta chars ...

  4. 学习javascript基础知识系列第三节 - ()()用法

    总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...

  5. s性能优化方面的小知识

    总结的js性能优化方面的小知识 前言 一直在学习javascript,也有看过<犀利开发Jquery内核详解与实践>,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够 ...

  6. javascript常用知识点集

    javascript常用知识点集 目录结构 一.jquery源码中常见知识点 二.javascript中原型链常见的知识点 三.常用的方法集知识点 一.jquery源码中常见的知识点 1.string ...

  7. 七个开法者经常忽略或误用的JavaScript基本知识

    七个开法者经常忽略或误用的JavaScript基本知识 翻译自 http://tech.pro/tutorial/1453/7-javascript-basics-many-developers-ar ...

  8. JS的基本类型(小知识)

    一:js中的基本类型: 基本类型:boolen, string ,number,null,undefined 引用类型:object,和函数 二.undedifned和null的区别: 1 undef ...

  9. JS控制语句 编程练习 学生数据,分别是姓名、性别、年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦。

    编程练习 在一个大学的编程选修课班里,我们得到了一组参加该班级的学生数据,分别是姓名.性别.年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦. 学生信息如下 ...

随机推荐

  1. sql server 以10分钟分组 统计人数

    请问针对时间段从每天早上7点开始统计每十分钟人 解决思路: 我以前做过一个关于月份的,是说每3个月以分组,其实是一样的.不过可能啊,整体数据量大会有问题.如果你只是求一天的,那绝对没问题.[1]如果只 ...

  2. 11 jmeter之图形监控扩展

    Jmeter默认监听器的缺陷 Jmeter默认的监听器在表格.文字方面比较健全,但是在图形监控方面比较逊色,尤其在监控Windows或Linux的系统资源方面.但是jmeter作为一款开源工具,允许通 ...

  3. POJ1014:Dividing(多重背包)

    http://poj.org/problem?id=1014 Description Marsha and Bill own a collection of marbles. They want to ...

  4. js 俄罗斯方块源码,简单易懂

    1.自己引入jquery <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  5. hadoop streaming怎么设置key

    充分利用hadoop的map输出自动排序功能,能够有效提高计算效率.Hadoop streaming框架默认情况下会以'/t’作为分隔符,将每行第一个'/t’之前的部分作为key,其余内容作为valu ...

  6. Bootstrap学习笔记-布局

    Bootstrap学习笔记-布局 默认是响应式布局,就是你在改变页面的时候也不会出现乱的现象. <html><head> <meta charset="utf- ...

  7. ZOJ 3949 Edge to the Root

    题意: 在一棵树中,可以从根节点往其他节点加一条边,使得根节点到其他所有节点的距离和最小,输出最小的距离和. 思路: 我们考虑在加的一条边为$1 \to v$,那么在树上从$1 \to v$的路径上, ...

  8. 20154312 曾林 EXP6 信息搜集与漏洞扫描

    目录 1.实验后回答问题 2.实验总结与体会 3.实践过程记录 --3.1.信息收集 ----3.1.1.whois查询 ----3.1.2.nslookup,dig查询 ----3.1.3.trac ...

  9. python管道pipe,两个进程,使用管道的两端分别执行写文件动作,带锁(lock)

    #coding=utf-8import multiprocessing as mp def write_file(content,lock):    lock.acquire()    with op ...

  10. 配置QT Mingw & opencv

    可以直接从这里下载别人构建好的 https://github.com/huihut/OpenCV-MinGW-Build --------------------------------------- ...