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:变量的声明
以下是几种声明变量的方式 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 tt" + 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;
时间: 2024-09-21 13:17:21

JavaScript 基础入门篇(一)的相关文章

整理Javascript基础入门学习笔记_javascript技巧

了解什么是变量? 变量是用于存储信息的容器 变量的声明 语法: var  变量名变量名 = 值; 变量要先声明再赋值 变量可以重复赋值变量的命名规则 变量必须以字母开头: 变量也能以$和_符号开头(不过我们不推荐这么做): 变量名称对大小写敏感(a和A是不同的变量). 1.语句 语句以一个分号结尾:如果省略分号,则由解析器确定语句的结尾. 有个好的编码习惯,都要以 ; 结尾 2.数据类型 在JavaScript中,一段信息就是一个值(value).值有不同的类型,大家最熟悉的类型是数字.字符串(

《Ansible权威指南 》一 第一篇 Part 1 基础入门篇

第一篇 Part 1 基础入门篇第1章 Ansible基础入门第2章 Ansible基础元素介绍第3章 Ansible Ad-Hoc命令集第4章 Playbook快速入门第5章 Ansible Playbook拓展 第1章 Ansible基础入门 "未来主体是传统行业利用互联网技术,以云端用人工智能的方式处理大数据",在腾讯"云+未来"技术峰会上,马化腾这样形容未来.15年前,电脑还只是少数人的专属,那时的网吧还很火,还没人知道"网咖"是什么.而

零基础入门篇之Linux及Arm-Linux程序开发笔记_linux shell

前言:本文记录了自己从一个完全不懂Linux的人如何一步步学会Linux程序开发的过程.当然也希望本文能够达到它的目的,让那些和我一样没有任何基础的人也能快速入门Linux程序开发. 一.Arm-Linux程序开发平台简要介绍     Arm-Linux程序的开发并不像我们以前接触的Windows程序开发那样,关于平台的搭建就繁琐很多,所以在正式进入程序开发之前先对这种开发模式进行简要介绍,让一个即使没有任何Linux开发经验的程序员也能够看懂后面的内容. 1.1程序开发所需系统及开发语言   

智能家居——IoT零基础入门篇

原文地址:http://www.cnblogs.com/rainmote/p/7617454.html 概要 本文主要根据笔者从零开始接触硬件,以小白视角开启IoT探索,根据相关资料DIY一个温湿度传感器.后经过探索发现新大陆--Home Assistant&Homebridge,最终实现了一个智能家居设备从数据采集到控制.展示. 整体结构图 智能设备:温湿度传感器 主控芯片:STM32F103C8T6 通信协议:Zigbee 智能网关:树莓派 数据存储.展示.设备控制:HomeAssistan

jquery 常用操作整理 基础入门篇_jquery

jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的Jörn Zaefferer,罗马尼亚的Stefan Petre等等. jQuery是继prototype之后又一个优秀的Javascrīpt框架.其宗旨是--WRITE LESS,DO MORE,写更少的代码,做更多的事情. 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, S

php基础入门篇-文件和目录操作

本章可以算是上一章的延续,介绍了除文件实际内容之外的附加信息,包括文件的大小.目录.访问权限等.文件系统中的某些函数只在服务器为特定的系统中时才有效,例如更改符号链接的函数symlink(),设定文件访问权限的函数chmod(),设定目录访问权限的函数umask()等等这些只在Linux系统中有效,在Windows系统中无效.PHP5以后提供的DirectoryIterator类也封装了很多实用的目录方面的操作  代码如下 复制代码 //------------- 采用DirectoryIter

java基础入门篇学习笔记

符号类型: 1.在C和C++中,int表示的整型与目标机器相关.在16位cpu上整型占2字节,在32位上占4字节:而在intel pentium的cpu上, C和C++整型依赖于具体的OS,对于DOS和Windows3.1,整型占2字节,当Windows使用32位模式时,整型占4字节. java没有无符号类型. 2.float类型的数值有一个后缀F.没有的浮点数值默认为double类型(也可以在后面添加后缀D以示区分). 一):这种方法方便,我就使用这种方法  代码如下 复制代码 float  

php基础入门篇学习笔记

php支持的基本数据类型: Integer:整数 Float(Double,双精度值):浮点数,表示所有实数 String:字符串 Boolean:布尔值,true/false Array:保存具有相同类型的多个数据项 Object:对象,保存类的实例 NULL:没有被赋值.已经被重置或被赋值为特殊值NULL的变量 特定的内置函数(例如数据库函数)将返回resource类型的变量 四种标量类型: string(字符串) integer(整型) float(浮点型,也作 double ) bool

教大家8天学通MongoDB——第一天 基础入门篇_MongoDB

关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中"集合" 就是对应关系数据库中的"表","文档"对应"行". 一: 下载       上MongoDB官网 ,我们发现有32bit和64bit,这个就要看你系统了,不过这里有两点注意:           ①:根据业界规则,偶数为"稳定版"(如:1.6.X,1.8.X),奇数为"开