JavaScript和Java在概念和设计方面都是完全不同的语言。JavaScript由Brendan Eich于1995年发明,并于1997年成为ECMA标准。ECMA-262是官方名称。ECMAScript 6(2015年6月发布)是JavaScript的最新官方版本。

  在HTML中,必须在<script>和</ script>标记之间插入JavaScript代码。可以放在HTML页面的<body>和<head>部分。

JavaScript可以以不同的方式“显示”数据:

  • 使用window.alert()写入警告框。
  • 使用document.write()写入HTML输出。
  • 使用innerHTML写入HTML元素。
  • 使用console.log()写入浏览器控制台。

变量

声明

var person = "John Doe", carName = "Volvo", price = 200;

注意:声明没有值的变量将具有 undefined值。如果重新声明JavaScript变量,它将不会丢失其值。

执行这些语句后,变量person仍将具有值“John Doe”:

var person = 'John Doe';
var person;
console.log(person);

运算

如果向字符串添加数字,那么将该数字视为字符串并连接。+=用于字符串拼接;

console.log(1 + 5 + '10' + 15); //

如果一个变量的值是字符串的数字,执行++操作会转成数字并计算 ; ++ 是操作变量的,不能是 ++1 或 1++

var number = '5'
console.log(typeof number) // string
console.log(number += 1); //
console.log(++ number); //
console.log(typeof number) //number

比较

  将字符串与数字进行比较时,JavaScript会在进行比较时将字符串转换为数字:空字符串转换为0。非数字字符串转换为NaN;  和NaN比较始终为false,即使是和NaN自己。可以用isNaN()判断是否是非数字,再进行比较,连接,运算等操作。比较两个字符串时,“2”将大于“12”,因为(按字母顺序)1小于2。因此比较的时候最好转成Number类型。

function print(log){
console.log(log);
}

base.js

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script src="base.js"></script>
<script>
print('5' > 4); //true
print('' > -1); // true
print('' < 1); // true
print('n' > 0) // false
print(0 === NaN) //false
print(0 == NaN) //false
print(NaN === NaN); // false
print(NaN == NaN); // false
</script>
</body>
</html>

数据类型

number,string,object, boolean,undefined

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script src="base.js"></script>
<script>
print(typeof "John" ); // Returns string
print(typeof 3.14) // Returns number
print(typeof false) // Returns boolean
print(typeof [1,2,3,4]) // Returns object
print(typeof {name:'John', age:34}) // Returns object
print(typeof a) // Returns undefined
</script>
</body>
</html>

JavaScript具有动态类型。这意味着同一个变量可以用作不同的类型:

var x;               // Now x is undefined
var x = 5; // Now x is a Number
var x = "John"; // Now x is a String

null与undefined

在JavaScript中,null的数据类型是一个对象。

var person = null;           // Value is null, but type is still an object

undefined和null之间的区别:

typeof undefined             // undefined
typeof null // object
null === undefined // false
null == undefined // true

undefined比null更消极,null表示变量该是一个对象,undefined表示不知道要保存什么类型;

数组和类

toString()

返回值:数组转换为(逗号分隔的)数组值的字符串。

注意:将对象转成字符串时,用String()转,因为String(null)不出错, undefined.toString()或null.toString()会出错

arr.join([separator])

返回值:用给定的分隔符将各数组元素组成字符串,类似于toString()

pop()和push() 【改变原数组】

分别在尾巴上弹出和推入元素;

返回值:分别返回弹出的元素和新数组的长度;shift()和unshift()类似,只是在前面弹出和推入元素

fill();【改变原数组】

将数组统一用给定参数填充;

返回值: 更改后的数组

filter(func[,thisValue]):

处理函数:  func(currentValue[,index,arr])  【下同】

返回值:传入一个函数,根据函数的返回结果判断是保留,并将保留结果作为数组返回

find(func,[thisValue]);

返回值:传入一个函数,根据函数的返回结果返回第一个符合条件的数组元素值

findIndex(func[,thisValue]):

和find(func)类似,只是返回符合func()条件的数组元素的index值

返回值: 如果数组中的任何元素通过测试,则返回数组元素索引,否则返回undefined

forEach(func,[thisValue])

为每个元素调用处理函数func; thisValue是处理函数this的值,如果此参数为空,则是Windows对象

返回值:  undefined

slice(start[, end])

返回值:  将指定部分的数组元素作为新数组返回

splice(index,howmany,item...) 【改变原数组】

在index位置开始删除howmany各元素,并插入item...

返回值:  返回删除的值(如果有)

Javascript没有对象:

于是模拟了一个对象:类似于hashmap的key:value保存结构

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script src="base.js"></script>
<script>
var stu = new Object(); // 能够保存key value的值
stu.name = "王有财";
stu.age = 21;
stu.showInfo = function(){
print(this);
print('name = '+ this.name + ';age = ' + this.age);
}
stu.showInfo(); </script>
</body>
</html>

结果:

{name: "王有财", age: 21, showInfo: ƒ}
name = 王有财;age = 21

JavaScript(5)—— 变量及数据类型的更多相关文章

  1. JavaScript 基础 (变量声明, 数据类型, 控制语句)

    创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...

  2. 【粗糙版】javascript的变量、数据类型、运算符、流程结构

    本文内容: javascript的变量 javascript的数据类型 javascript的运算符 javascript的流程结构 首发日期:2018-05-09 javascript的变量 创建变 ...

  3. 浅谈Java和JavaScript中变量和数据类型的区别

    对于一门编程语言的学习,如果第一步是安装环境,那么第二步一定是学习这门语言的基本规则,变量和数据类型则首当其冲 JavaScipt作为一个蹭Java热度而命名的语言,在很多方面和Java也有一定的相似 ...

  4. javaScript之变量与数据类型

    http://www.cnblogs.com/yuanchenqi/articles/5980312.html 在了解变量之前,我们首先学习JavaScript的引入方式 JavaScript的引入方 ...

  5. javascript的变量及数据类型

    1.变量的概念 变量是储存数据的内存空间 2.变量的命名规则 js变量的命名规则如下:以字母或者下划线开头可以包含字母.数字.下划线,不能包含特殊字符 3.变量的创建及初始化方法 方法一:先创建后使用 ...

  6. 《JavaScript 闯关记》之变量和数据类型

    当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量,值的类型称作数据类型. 变量 JavaScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据.换句话说,每个变量仅仅是 ...

  7. JavaScript(二)---- 变量、数据类型和运算符

    变量 javaScript中的变量变量是弱类型的,用var来声明. javascript的变量声明格式: var 变量名 = 数据; 声明变量要注意的事项: 1. 在javascript中声明变量是 ...

  8. javascript重修之书(一):如何判断变量的数据类型

    javascript重修之书(一):如何判断变量的数据类型 一:检测值类型 基本类型:(Undefined.Null.Boolean.Number和String) javascript之所以被称为一门 ...

  9. javascript的变量声明、数据类型

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 学习 JavaScript (三)核心概念:语法、变量、数据类型

    JavaScript 的核心概念主要由语法.变量.数据类型.操作符.语句.函数组成,这篇文章主要讲解的是前面三个,后面三个下一篇文章再讲解. 01 语法 熟悉 JavaScript 历史的人应该都知道 ...

随机推荐

  1. MyBatis-08-使用注解开发

    8.使用注解开发 8.1.面向接口编程 面向接口编程的根本原因:解耦,可拓展,提高复用,分层开发中.上层不用管具体的实现,大家都遵守共同的标准,使得开发变得容易,规范性好 8.2.使用注解开发 注解在 ...

  2. C# HttpClient使用 网络(一)

    一.异步调用web服务  GetAsync() static void Main(string[] args) { Console.WriteLine("In main before cal ...

  3. Verilog状态机使用技巧

    “没有什么难处是通过增加一个状态机不能够解决的,如果不行,那就俩..” 在实现某种功能时,若感觉该功能的各种可能状态间的切换太绕了,此时,增加一个状态机往往能使思路变得清晰,功能的实现也就简单明了了. ...

  4. Android项目实战登录&注册

    由于项目中大部分界面都有一个后退键和一个标题栏,为避免代码冗杂以及便于利用,我们可以将后推荐和标题栏单独抽取出来定义一个标题栏布局,在 res/layout 目录下新建一个 Layout resour ...

  5. MySQL安装及基础命令

    介绍数据库安装基础命令 linux的下载和安装 mac的下载和安装 windows的下载和安装 介绍: 数据库在开发中占据的位置? 数据库能更简单的使用存储在文件中的数据能更好的解决并发问题,数据统一 ...

  6. 二、编译安装LAMP之httpd-2.4.4

    回顾 PHP:脚本编程语言,php解释器 Webapp:面向对象的特性 Zend: 第一段:词法分析.句法分析.编译为Opcode: opcode放置于内存中 第二段:执行opcode: opcode ...

  7. DOM元素

    元素的三种创建方法 1.doumrnt.write(可以写类名,各种表情属性)       script写在哪里就创建在哪 <button>点我</button> <sc ...

  8. LVS集群之DR模式

    今天来讲LVS-DR模式集群实现负载均衡的搭建方法 环境 主机名 IP   系统 角色 dir DIP:192.168.199.9 VIP:192.168.199.8 rhel7.4 集群服务器 no ...

  9. LK光流算法公式详解

    由于工程需要用到 Lucas-Kanade 光流,在此进行一下简单整理(后续还会陆续整理关于KCF,PCA,SVM,最小二乘.岭回归.核函数.dpm等等): 光流,简单说也就是画面移动过程中,图像上每 ...

  10. Spring学习随笔(2):Eclipse下Spring环境配置+入门项目

    1 准备工作 (按需下载) Eclipse 下载:http://www.eclipse.org/downloads/eclipse-packages/ : Spring 下载:http://repo. ...