JavaScript中的变量和数据类型

Js做客户端语言

按照相关的Js语法,去操作页面中的元素,有时还要操作浏览器里面的一些功能

Js由三部分组成:

  • ECMAScriptES):描述了该语言的语法和基本对象
  • DOMDocument Object Model):文档对象模型,描述处理网页内容的方法和接口,通过一些Js的属性和方法,用来操作页面中的DOM元素
  • BOMBrowser Object Model):浏览器对象模型,描述与浏览器进行交互的方法和接口,用来操作浏览器的。

Js中的变量 Variable

JS中数据分为两大类:一是基本数据类型:UndefinedNullBooleanNumberStringSymbol,二是复杂数据类型:Object,Object本质上是由一组无序的名子对组成的。

变量:可变的量,在编程语言中,变量其实就是一个名字,用来存储和代表不同值的东西。

// ES3
var a = 123;
// ES6
let b = 100;
b = 200 //报错
const c = 1000; // 创建函数也相当于在创建变量
function fn() {} // 创建类也相当于创建变量
class A{} // ES6的模块岛屿也可以创建变量
import a from './a.js' // Symbol创建唯一值
let n = Symbol(100)
let m = Symbol(100)

总结:

  • var声明的变量,可以重复声明,后声明的会覆盖前面的
  • let声明的变量具有作用域,在同一作用域下不可重复声明变量,但是可以修改变量的值,例如let a = 1;,不能再次声明alet a = 2;会报错,提示:Uncaught SyntaxError: Identifier 'a' has already been declared
  • const声明的变量为常量,不能修改该变量的值,但是像Object这样的复杂数据类型,在内存中存放的是一个指向该对象的指针,也就是说,用const声明的对象仍然可以修改该对象的值,但不可再次声明该对象

JS中的数据类型

  • 基本数据类型

    • 数字Number (常规数字和 NaN)

    • 字符串 String

    • 布尔值 Boolean

    • 空指针 Null

    • 未定义 Undefined

    • 唯一值(独一无二的值)Symbol

  • 引用数据类型 Object对象类型

    • {} 普通对象
    • [] 数组对象
    • RegExp 正则对象
    • Function 函数数据类型
    • Math 数学函数对象
    • Date 日期对象

数据类型应用场景:

当我们通过Ajax请求拿到数据之前,先在本地初始化数据,一般都会先给一个默认的数据,请求数据后再把数据放入到我们定义好的数据结构里面,比如:

var data = {

    count: 0,
isActive: true,
goods: [],
model: null,
message: '' }

验证数据类型 typeof操作符

typeof操作符用于检测给定变量的数据类型。typeof操作符可以检测的数据类型有:

  • undefined
  • boolean
  • string
  • number
  • object
  • function
var message = 'some string'
console.log(typeof(message) // "string" var arr = [1,2,3,4]
console.log(typeof(arr) // "object"
console.log(typeof(null) // "object"

在上面的例子中调用 typeof null会返回"object",因为特殊值null被认为是一个空的对象引用。用typeof检测一个变量是否是数组并不准确,会返回"object"

JS的组成和变量的更多相关文章

  1. 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数

    [问题]Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数. [解决]直接对变量加引号,如: <button onclick="deleteProduct('@ ...

  2. js 碎片整理(变量声明,函数作用域)

    1.变量声明: 在非严格模式下,函数可以对未声明的变量赋值,而这样赋值的结果就是该变量就会变成全局变量. (function(){ var a = 1; })(); console.log(a) ; ...

  3. JS怎么动态命名变量名

    [摘要]本文是对JS怎么动态命名变量名的讲解,对学习JavaScript编程技术有所帮助,与大家分享. 1.用eval,例子: 1 2 3 4 5 6 7 <script> var Thr ...

  4. 多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量

    多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量,并且数组变量可以直接取到每一个元素var array1 = '<%=yearList =>'; ...

  5. 在JS中调用JAVA变量

    在JS中调用JAVA变量可以,方法是:var JS变量名 = “<%=JAVA变量名 %>”<%中间写java代码,跟在JSP中一样%>在JAVA中 ,无法调用JS变量

  6. JS 函数作用域及变量提升那些事!

    虽然看了多次js函数作用域及变量提升的理论知识,但小编也是一知半解~ 这几天做了几道js小题,对这部分进行了从新的理解,还是有所收获的~ 主要参考书籍: <你不知道的JavaScript(上卷) ...

  7. 使用javax.script包实现Java设置JS脚本中的变量

    下面例子中,我们通过javax.script包ScriptEngine.put()方法设置JS脚本中的变量,JS把所有在线用户输出. package ajava.code.javase; import ...

  8. js声明引入和变量声明和变量类型、变量

    问题: 在网页的发展历程中,发现网页不能对用户的数据进行自动校验,和提供一些特效. 解决: 使用javascript. 作用 可以让网页和用户进行直接简单的交互. 可以让网页制作特效和动画. 声明js ...

  9. 如何设置 sass 全局变量,js如何使用 sass 变量

    关键词:sass全局变量 js引用sass变量 1 如何在样式中使用 scss 的声明的全局变量 假设我们有一个全局的 scss 变量文件/styles/_vars.sass,如下: $red: re ...

  10. js语法没有任何问题但是就是不走,检查js中命名的变量名,用 service-area错误,改service_area (原)

    js语法没有任何问题但是就是不走,检查js中命名的变量名,用 service-area错误,改service_area

随机推荐

  1. 关于KindEditor编辑器,word文档中的图文全选粘贴,在编辑器中不显示图片的问题

    图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码 目前限chrome浏览器使用,但是项目要求需要支持所有的浏览器,包括Windows和macOS系统.没有办 ...

  2. 帝国CMS编辑器粘贴Word图片

    图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码 目前限chrome浏览器使用,但是项目要求需要支持所有的浏览器,包括Windows和macOS系统.没有办 ...

  3. leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和]

    题目链接 Given a m x n matrix mat and an integer threshold. Return the maximum side-length of a square w ...

  4. 20180826(03)-Java泛型

    Java 泛型 如果我们只写一个排序方法,就能够对整形数组.字符串数组甚至支持排序的任何类型的数组进行排序,这该多好啊. Java泛型方法和泛型类支持程序员使用一个方法指定一组相关方法,或者使用一个类 ...

  5. form表单action带参数传递

    form表单action带参数传递function submit(){  var u = document.forms[0].elements["user"].value;  do ...

  6. CDN:BootCDN

    ylbtech-CDN:BootCDN BootCDN稳定.快速.免费的前端开源项目 CDN 加速服务共收录了 3351 个前端开源项目 1. 推荐返回顶部 1. bootstrap Bootstra ...

  7. linux文件夹 权限为所有用户可 读写

    使用命令: sudo chmod dirname -R

  8. mysql_DML_select_聚合join

    聚合函数: select avg(salary)//平均值 from wsb; select sum(salary)//总和 from wsb; select max(salary)//最大 from ...

  9. day31—CSS Reset 与页面居中布局

    转行学开发,代码100天——2018-04-16 报名的网易前端开发课程今天正式开课了,这也是毕业后首次付费进行的正式培训课程学习.以此,记录每天学习内容. 今天学了两个方面的知识: 1. CSS   ...

  10. vm虚拟机用批处理启动和关闭

    title vmware 虚拟机开启中 cls&&echo 正在开启VMware虚拟机,请稍候... "D:\vmware\vmware.exe" -x " ...