zoukankan      html  css  js  c++  java
  • js 学习笔记---基本概念

    早已接触javascript多年之后,竟然还有这些概念混淆不清,毫不知情,说出来真实无地自容 !

    1、使用严格模式,“use strict”,虽然不适用,但是要知道,以免别人使用时,碰到后摸不着头脑!

    2、js只有五中基本类型和一种复杂类型,Undefined,String,Number,Boolean,Null 和Object。typeof 返回的都是小写类型,e.g: j null == 'object'

    3、var 声明变量未初始化时,变量就是undefined。 null 是一个指向空对象的指针。所以,typeof null = 'object'. 但是undefined派生自null。 null==undefined 是true


    5、Object是所有对象的基础,每个对象都具有下列属性和方法:constructor,hasOwnProperty(propertyName)-是否存在某属性,isPrototypeOf(object)-检查传入的对象是否是对象的原型,propertyIsEnumerable(propertyName)-用于检查给定的属性是否能够使用for-in来枚举,toLocaleString(),toString(),valueOf()等。

    6、理解参数问题:函数的参数是通过一个参数数组来接收参数的arguments。函数的定义和调用的时候,参数没什么关系,如果定义时写了参数就是可以显示的使用参数。否则,通过arguments[0],arguments[1]等依然可以实现相同的效果。调用时参数传递不够的,后面的自动赋值为undefined。如果多传递的可以通过下标访问arguments获得。还有重要的一点就是:arguments的值始终与对应命名参数的值保持同步,即可以通过改变arguments里的值,修改传递进来的参数值。


    测试代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>
    
    <body>
    <script type="text/javascript" language="javascript">
    	var testUndefined;
    	alert(testUndefined);
    	alert(testUndefined == null);
    	alert(typeof null);
    	alert(typeof undefined);
    	var obj = {};
    	obj.name = 'wch';
    	obj.pwd =132;
    	alert(obj.hasOwnProperty('name')+":"+obj.hasOwnProperty('id'));
    	alert(obj.toString()+" : "+obj.valueOf()+' : '+obj.toLocaleString());
    	alert(obj.propertyIsEnumerable('name')+' : '+obj.propertyIsEnumerable('pwd'));
    	function sum(){
    		var sum = 0;
    		for(var i=0; i< arguments.length; i++){
    			if(i==3){
    				arguments[3] = 10;
    			}
    			sum+=arguments[i];
    		}
    		return sum;
    	}
    	alert(sum(1,2,3)+' : '+sum(10,20,30,60));
    </script>
    </body>
    </html>
    


  • 相关阅读:
    解决PKIX:unable to find valid certification path to requested target 的问题
    Linux 上的常用文件传输方式介绍与比较
    用VNC远程图形化连接Linux桌面的配置方法
    红帽中出现”This system is not registered with RHN”的解决方案
    linux安装时出现your cpu does not support long mode的解决方法
    CentOS SSH配置
    es6扩展运算符及rest运算符总结
    es6解构赋值总结
    tortoisegit安装、clon、推送
    es6环境搭建
  • 原文地址:https://www.cnblogs.com/vvch/p/4027582.html
Copyright © 2011-2022 走看看