初识JavaScript 变量, 操作符, 数组
这里讲的不会太多, 因为所有的语言都是一样的, 一些基本的东西, 所以就随便写写.
变量
变量就是可变的量, 编程角度理解就是用于存储某种/某些数值的存储器. 我们可以把变量具象理解为一个盒子, 而我们给的值就是盒子里面的东西, 这个盒子在那里不动, 而我们是可以改变盒子里面的东西的.
变量的命名规则, 必须以字母, 下划线, 或者美元符号开头, 后面可以跟字母, 下划线, 美元符号和数字.
声明一个变量$variable = 0;
var $variable = 0;
变量的声明
使用var关键字来声明变量, 准确来说, 变量是无类型的, 变量可以被赋予任何类型的值, 同样一个变量也可以重新赋予不同类型的值(这个很逆天). 示例代码:
var number = 5;
number = "number";
这段代码是合法的.
变量名是区分大小写的. 所以variable和Variable是两个变量. 非严格模式下, 变量是可以不声明就直接使用的, 但是先声明再使用这是规范!!! 变量的值是可以被覆盖的, 也是可以被传递的. 如果仅仅声明了变量, 但是并没有赋值, 那么变量的值为undefined. JS变量的声明是可以重复的, 而且合法, 无害, 其实就是对变量的重新赋值(这在其他的语言中一般是不允许的).
所以简单总结下就是JS的变量是没有类型的, 所有的类型会在运行时进行判断, 所以可以先给变量一个数字直接量, 再给一个字符串, 再给一个数组, 这些都是合法的.
变量作用域
和其他语言基本一样, 全局变量作用于全局, 局部作用于函数内部, 但是在嵌套函数定义中有一些区别, 这里就不详细解释了, 有兴趣的百度百度
值类型
虽然变量是不区分类型的, 但是在JS中, 各种类型也是存在的, JS是部分整数值和浮点数值的. 所有的数字均用浮点数值表示, 这个就不详细解释, 知道就好.
当一个数字直接出现在JavaScript程序中, 我们称之为数字直接量, JS支持多种格式的数字直接量.
整形直接量(1, 100, 0), 浮点型直接量(3.14, 333.66, 0.345, 6.02e23, 7.77E-32).
操作符
这里就不赘述了, "=", "+", "-", "*", "/", "-=", "+=", "*=", "/=", "%", "&&", "||", "!", ">", ">=", "==", "<=", "<", "++", "--", 这些符号都支持, 同样的, 优先级, 结合性也是和C语言一样的几乎.
简单说下, "+"这个符号在数学值运算的时候是表示数学意义上的相加, 比如var i = 1 + 2;这句话的结果就是i = 3, 而在有字符串参与运算的时候, 一般会变成拼接, 比如var i = 1 + "wang", 这个表达式的结果就会是i是一个字符串, i的结果会是"1wang".
数组
数组的定义我就不讲了啊, 就是对象的有序集合, 优点是查询方便快捷, 缺点是删除插入麻烦, 这些C语言什么的都有, 这里就说说在JS中数组怎么用吧, 没有面向对象语言基础的都跪着吧.
如何创建数组
var array = new Array();
上面的语句就是实例化一个空数组, var array声明了一个变量, 右边赋值的是一个Array的对象, new是指为一个对象开辟空间, 这些对象语言的语法我就不介绍了...
数组的访问
数组访问和其他语言一样, 才用数组名加索引的方式, 比如var array = [1, 2, 3, 4, 5], 那么想访问第一个元素1, 就是array[0].
JS中的数组不存在数组越界访问的问题, 所以声明的数组可以直接用索引赋值, 比如数组长度为5, 如果你为索引为5的元素赋值, 那么长度自动就变为6了, 如果未赋值的索引被访问到了, 并不会出现垃圾值或者崩溃, 而是值为undefined, 未定义.
数组的赋值
1, 创建数组并赋值
var array = new Array(1, 2, 3, 4, 5);
2, 字面量形式赋值
var array = [1, 2, 3, 4, 5];
这两种的效果是相同的, 具体细节差别也不解释了, 有兴趣的可以自己百度字面量形式.
二维数组
二维数组用的不多, 其实就是数组的每一个元素又是一个数组, 代码示例:
var array = [[1, 2, 3], [1, 2, 3]];
这就是一个二行三列的数组, 想要访问数组, 需要给出两个索引, 比如a[1][2], 就是指第二数组里面的3. 也可以用矩阵的形势理解, 也就是第二行, 第三个. 学习中我感觉了解, 知道就好了, 用的时候会用就好.
二维数组的赋值一般都是二重循环, 依次赋值, 一维数组一重循环即可.
流程控制我就不讲了, if else, else if, switch啥的, 估计学js之前应该都有别的语言基础了, 我就直接跳过了.
初识JavaScript 变量, 操作符, 数组的更多相关文章
- 初识javascript变量和基本数据类型
1.1首先,学习使用firebug控制台.设置一下firefox 中的配置选项,以便使控制台中的javascript警告更为严格...以方便我们更好的找出程序中不必要的bug. 1. 在火狐浏览器fi ...
- 初识JavaScript变量
一.什么是变量? 变量即变化的量,在JS中变量是松散类型的,可以用来保存任何数据类型.把数据取个名字,放在内存中,就称之为变量! 通过变量名可以取到对应数据 二.为什么使用变量? 程序:代码的集合,一 ...
- 2 JavaScript输出&字面量&变量&操作符&语句&标识符和关键字&字符集&语句&数据类型与类型转换
JS输出: JavaScript没有任何打印或者输出的函数,但是可以用不同的方式输出数据 window.alert():弹出警告框 document.write():写入文档 innerHTML:写入 ...
- JavaScript用typeof判断变量是数组还是对象,都返回object
在JavaScript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数组还是对象使用typeof搞不定,因为它全都返回object. 使用typeof加leng ...
- Javascript中判断变量是数组还是对象(array还是object)
怎样判断一个JavaScript变量是array还是obiect? 答案: 1.如果你只是用typeof来检查该变量,不论是array还是object,都将返回‘objec'. 此问题的一个可行的答案 ...
- 笔记一、初识 Javascript
一.初识 Javascript javascript是一种专为与网页交互儿设计的脚本语言.由三部分组成:ECMAScript (ECMA-262定义) : 提供核心语言功能文档对象模型(DOM): ...
- 初识JavaScript(一)
初识JavaScript(一) 最近由于工作的需要的原因,我从一个写后台的现在让我转到写前端,再加上我的js部分特别的差,所以我现在开始学习js部分的知识. 我的第一篇博文就这样开始写了.俗话说,千里 ...
- 六天玩转javascript:javascript变量与表达式(2)
本系列内容为本人平时项目实践和参照MDN,MSDN,<javascript语言精粹>,<Effective Javascript>等资料,并且整理自己EverNote的日常积累 ...
- Day15 HTML补充、初识JavaScript
一.上节回顾 上节回顾: HTML 头部信息:编码.title.style.link(导入css文件) 身体: 内联 块级 --->inline-block(既有内联效果又有块级效果) a标签: ...
随机推荐
- c++堆
c++ reference: http://www.cplusplus.com/reference/algorithm/make_heap/ heap并不属于STL容器组件,它分为 max heap ...
- ASP.NET Core的配置(3): 将配置绑定为对象[上篇]
出于编程上的便利,我们通常不会直接利用ConfigurationBuilder创建的Configuration对象读取某个单一配置项的值,而是倾向于将一组相关的配置绑定为一个对象,我们将后者称为Opt ...
- 记一次ASP.NET MVC性能优化(实际项目中)
前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...
- Oracle Database 11g Express Editon介绍及安装
一.Oracle Database 11g Express版本介绍 公司项目开发中,使用的数据库是Oracle 10g和MySQL 5.5,最新因为开发需要,需要从后台读取一些数据.使用的客户端是PL ...
- 手动实现jQuery Tools里面tab功能
平时开发中用的Javascript类库都是jQuery,用到插件或者第三方类库能从jQuery Tools里面找到,基本不用其他的.当然有时同事喜欢使用jQuery UI里面的插件.并且jQuery ...
- git与svn, tfs等源代码管理器的协同
简单地说,这三个都是业界知名的源代码管理器.他们是有区别的,根本的区别在于git是分布式源代码管理器(每个本地都有完整的代码,及历史),而svn和tfs是集中式源代码管理器(只有服务器才有完整的历史, ...
- 如何利用脚本实现MySQL的快速部署以及一机多实例的部署
MySQL有三个版本:二进制,源码包,RPM. 下面讲讲二进制包的安装过程 下载地址: http://dev.mysql.com/downloads/mysql/ 选择Linux-Generic 我这 ...
- 如何部署Icinga客户端
Icinga客户端的部署相对于服务器端来说,简单很多.对于服务器端来说,如果要通过以下这种方式来监控服务器,必须包含三个组件,Icinga内核,Icinga插件,NRPE(Nagios Remote ...
- geotrellis使用(八)矢量数据栅格化
目录 前言 栅格化处理 总结 参考链接 一.前言 首先前几天学习了一下Markdown,今天将博客园的编辑器改为Markdown,从编写博客到界面美观明显都清爽多了,也能写出各种样式的东 ...
- C# 将excel表格嵌入到Word中
C# 将excel表格嵌入到Word中 继续开扒,今天要实现的是使用C#将excel表格嵌入到Word中这个功能,将word表格导入到excel中我已经写过了,如有需要可参考我之前的文章,在开始前还有 ...