JavaScript 基础篇(一)


Posted in Javascript onMarch 30, 2012

JavaScript 基础篇(一)
基础篇
Javascript:一、数据类型和值
javascript:允许使用3种基本类型数据--------数字、字符串、布尔值,此外还支持两种小数据类型null(空)和undefine(未定义).
javascript:还支持符合数据类型-对象(object),javascript中对象分两种,一种对象表示的已命名的值的无序集合,另一种表示有 编号的值的有序集合。其实有序集合就是数组(Array)。
javascript:还定义了另一种特殊对象----函数,还有一些javascript定义的一些专用对象(等同C#封装的类一样的概念,直接用就行)

<script> 
整型直接量:3或者10000,说白了就是数字 
浮点型直接量:3.14,2345.567等,就是带小数点的 
字符串直接量:"3.14","demo"等,所谓字符串,就是带单引号或双引号括起来的Unicode字符序列。 
把数字转换为字符串:1,var s = 100; s+="What you name";数字就会先 
转换成字符串 
2,var s = 100 +"";加一个空字符串 
3.要让数字更显示的转换为字符串可以使用 String()函数或 
者使用toString函数。 
把字符串转换为数字:var product = "2" * "2";其实当一个字符串用于数字环 
境 中它会自动地转换成一个数字,也可以通过减0也可达到同样的效果,或者使用 
Number()函数 
布尔值: 
在这里我想和大家分享的内容还是转换:今后用的会比较多。1、当一个布尔值用在数字环境中,true就转换为数字1,而false转换成数字0,在字符串环境中,true就转换成字符串true,而false就转换成字符串false 
函数: 
函数是一个可执行的JavaScript代码段。这里说一下:函数作为数据类型,也可以像其他类型一样赋给对象的属性,当赋值成功后,属性常常当做是哪个方法的引用。后面常用。 
函数直接量:var square = function(x){return x*x};//后面常用到,要能理解或记住 
</script>

Javascript:二、对象
1、对象
<script> 
var o = new Object();//大家注意,javascript大小写敏感! 
var now = new Date() 
var regex = new RegExp("^\+?\d{1}\d{3}$")//正则表达式 
对象的直接量: 
var point = {x:12,y:34}; 
var point2 = {"super":{day:sunday,day1:monday}}//对象的属性引用另一个对象。 
对象的转换: 
当一个非空的对象用于布尔环境时:它转换为true,当用在字符串环境中是,javascript会调用对象的toString()方法,并且使用该函数返回的值,当用于数字环境时:javascript 会调用该对象的valueOf()方法,如果返回的是一个基本类型,这个值会被使用,大多数的时候返回的是对象自己,这种情况下javascript回调用toString()方法把对象转换成一个字符串,然后在试图转换成数字。这上面的概念,希望大家也要理解,以后会用到。 
</script>

2、数组
<script> 
var array = new Array(); 
var arr = new Array(1.2,"Javascript",{x:12,y:23})//带参数的 
数组直接量: 
var a = [1.2,"Javascript",{x:12,y:23}]//数组是[]号,对象是{}号,很好记! 
</script>

3、Null(空)
javascript的关键字Null 是一个特殊的值,它表示无值,null 常被看作对象类型的一个特殊值,即代表无对象的值,当一个变量的值
为null,那么就说明它的值不是有效的(Array,Object,数字,字符串,布尔值), 细节:null 在布尔环境中它转换成false;在数字
环境中转换成0。
4、Undefined(未定义)
在使用一个并未声明的变量时,或者使用了已经声明的变量但没有赋值的变量时,又或者是使用一个并不存在的对象属性是,返回的
就是undefined值,在往后的(命名空间,模块用的还是蛮多,大家要理解),细节:underfined在布尔环境中它转换成false,在数字环境
它会转换成NaN。这一点和null有区别。封装它的对象是Error。
小结:以上内容虽然一看就懂,希望和我一样初学的朋友们,千万不要大意!
JavaScript 基础篇 (二)
基础篇
javascript:变量的声明
以下是几种声明变量的方式
var value; 
var value,value1,value2;//同时声明多个变量,但是这些变量的值都是undefined 
var i = 0,j = 0,k=100;//变量声明,初始化一体。 
//如果大家尝试读一个不存在的变量(值)会报错!但是尝试给一个未使用Var声明的变量赋值,javascript 
//会隐式的声明改变量,而且声明了的变量还是全局的。细节:所以大家创建变量都尽量使用Var 
//变量的作用域(这个问题也容易出,大家要搞明白)

javascript:变量的作用域
这些都是细节,和我一样初学的一定要注意避免!
var golbal = "golbal"; //全局变量 
var local ="local"; 
function area() 
{ 
//局部变量的优先级比全局变量的高 
var local = "arealocal" 
//当函数体内声明的变量名和全局变量名相同时,javascript 会隐藏全局变量 
var golbal ="areagolbal"; 
document.write("local is :"+local + "and golbal is :" + golbal +"<br />"); 
} 
area(); 
//输出:local is :arealocaland golbal is :areagolbal

在嵌套的函数里面定义局部变量,效果会怎么样呢?看下面:
var hope = "moremoney"; 
function createmore() 
{ 
var hope = "have more money";//局部 
function createmoreto()//嵌套函数 
{ 
var hope = "have more money to much";//局部 
document.write("Createmoreto hope is :"+hope +"<br />"); 
//输出:Createmoreto hope is :have more money to much 
} 
createmoreto();//调用 
document.write("Createmore hope is :" +hope +"<br />"); 
//输出:Createmore hope is :have more money 
} 
createmore(); //调用

javascript:传值和传址
这里也是比较重要的概念!不要漏了。
传值 



传址 
复制 实际复制的值,存在不同的、 




 复制的只是对数字的引用。如果通过这个 
独立的拷贝。 




 新的引用修改了数值,这个改变对最初的 












引用来说也是可见的。 
传递 传递给函数的是值的独立拷贝 





传递给函数的是对数值的引用,如果函数 
对它的改变在函数外没有影响 





通过传递给它的引用修改了数值,这个改 












 变也是可见的。 


 
比较 比较这两个对立的值,通常逐 





比较的是两个引用,以判断它们引用的是否 
字节的比较,以判断是否相等 



 

是同一个数值。

javascript:基本类型和引用类型
javascript的基本规则是:基本类型通过传值来操作,引用类型通过传址来操作。(什么事值类型,或者什么事引用看我上一篇)
按值传递 
var value = 1; 
var copyvalue = value; //将value赋给另一个变量 
function addTotal(total,arg) 
{ 
total+= arg; //total = total + arg 效果等同 
} 
//调用函数,传两个参数(大家可能会认为这个函数改变了全局变量的值,其实没有,函数用的也是对立拷贝) 
addTotal(value,copyvalue); 
if(value == 1) copyvalue = 2; 
document.write("total \t" + value + "and copyvalue \t\t" + copyvalue+"<br />"); 
//最后输出:total 1and copyvalue 2

按址传递 
var array = new Array("Javascccp"); 
var objarray = array; 
function modifyArray(arr) 
{ 
arr[0] = "JAVASCRIPT"; 
} 
//没调用函数前 
document.write(array[0] +"<br />"); 
//输出Javascccp; 
//调用函数后 
modifyArray(array); 
document.write(array[0]+"<br />"); 
//输出大写JAVASCRIPT 
//通过修改objarray会是一样的效果 
objarray[0] = "Frank"; 
document.write(array[0]+"<br />"); 
//输出Frank;

小结:上面内容希望大家都不要错过,对学习后面的知识还是很有帮助的!
Javascript 相关文章推荐
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
Feb 03 Javascript
扩展JavaScript功能的正确方法(译文)
Apr 12 Javascript
我的Node.js学习之路(一)
Jul 06 Javascript
JS+CSS实现简易实用的滑动门菜单效果
Sep 18 Javascript
详解Jquery实现ready和bind事件
Apr 14 Javascript
angularJs关于指令的一些冷门属性详解
Oct 24 Javascript
jQuery实现手机上输入后隐藏键盘功能
Jan 04 Javascript
jquery仿微信聊天界面
May 06 jQuery
vue-router路由参数刷新消失的问题解决方法
Jun 17 Javascript
jQuery轮播图功能制作方法详解
Dec 03 jQuery
JS前端广告拦截实现原理解析
Feb 17 Javascript
Element Dropdown下拉菜单的使用方法
Jul 26 Javascript
js确定对象类型方法
Mar 30 #Javascript
js 浏览器事件介绍
Mar 30 #Javascript
js中eval详解
Mar 30 #Javascript
关于jquery性能最佳实践的讨论,与求教
Mar 30 #Javascript
从面试题学习Javascript 面向对象(创建对象)
Mar 30 #Javascript
jQuery 自定义函数写法分享
Mar 30 #Javascript
一个JQuery操作Table的代码分享
Mar 30 #Javascript
You might like
ThinkPHP之用户注册登录留言完整实例
2014/07/22 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
详解php中生成标准uuid(guid)的方法
2019/04/28 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
javascript英文日期(有时间)选择器
2007/05/02 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
Python计算回文数的方法
2015/03/11 Python
Python Requests安装与简单运用
2016/04/07 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
详解Python if-elif-else知识点
2018/06/11 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
详解Python并发编程之创建多线程的几种方法
2019/08/23 Python
python nmap实现端口扫描器教程
2020/05/28 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
党员承诺书怎么写
2014/05/20 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
git中cherry-pick命令的使用教程
2022/06/25 Servers