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. Event Binding in Angular

    https://www.pluralsight.com/guides/angular-event-binding Introduction In this guide, we will explore ...

  2. Mysql中用exists代替in

         exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的 ...

  3. C# WebClient 的文件上传下载

    上传文件 string path = openFileDialog1.FileName; WebClient wc = new WebClient(); wc.Credentials = Creden ...

  4. JavaScript属性名和属性值

    ㈠属性名 var obj = new Object(); 向对象中添加属性 ⑴属性名:           - 对象的属性名不强制要求遵守标识符的规范                 什么乱七八糟的名 ...

  5. am335x system upgarde ddr3 capacity configuration base on TI DDR3 Software Leveling Tool (二十)

    follow test is  use ti DDR Software Leveling op log. AM335x DDR3 Software Leveling -- Version: Beta ...

  6. jQuery系列(十):事件对象

    1.事件对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. (1)什么时候会产生Event 对象呢? 例如: 当用户单击某个元素的时候,我们给 ...

  7. Python基础之集合set

    集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型), 但是集合本身是不可哈希的(所以集合做不了字典的键)的. 以下是集合最重要的两点: (1)去重,把一个列表变成集合,就自动去重了. ...

  8. python sqlite3学习笔记

    1.sqlite3.connect()参数说明 self.connect = sqlite3.connect(db_name,timeout=3,isolation_level=None,check_ ...

  9. maxwell的数据引导方式

    INSERT INTO maxwell.bootstrap (database_name, table_name,where_clause) VALUES (--''); INSERT INTO ma ...

  10. CodeForces 535C Tavas and Karafs —— 二分

    题意:给出一个无限长度的等差数列(递增),每次可以让从l开始的m个减少1,如果某个位置已经是0了,那么可以顺延到下一位减少1,这样的操作最多t次,问t次操作以后从l开始的最长0序列的最大右边界r是多少 ...