当前位置: 首页 > news >正文

JavaScript书写基础和基本数据类型

JavaScript书写基础和基本数据类型

@jarringslee

js书写基础和规范

js是一种在客户端(浏览器)运行的编程语言,可实现人机交互的效果。


js组成:

js由两部分组成:

  1. ECMAScript:js的语言基础,js遵循其语言逻辑。它规定了js的基础语法核心知识,如变量、分支、循环等;
  2. Web APIs:分为DOM(页面文档对象型:操作文档,比如对页面元素进行移动、大小、添加删除等操作)和BOM(浏览器对象型:操作浏览器,比如页面弹窗、检测窗口宽度、存储数据到浏览器等)。

js书写位置:

  • 行内js

  • 内部js直接写在html文件中(通常写在</body>标签上面),用<script>标签包裹住

  • 外部js通过link链接

    <body><script src="js文件地址"></script>
    </body>
    

js结束符:

可以用分号结尾,也可以不写,统一格式即可。

输入和输出语法:

  • 输出语法

    1. 向body内输出内容:

      document是文档的意思,输出内容也可以用标签包裹。

      document.write('输出内容')
      document.write('<h1>我是标题</h1>')
      
    2. 页面弹出警示框:

      alert('输出内容')
      
    3. 控制台输出(用户无法看到,在控制到console中):

      console.log('控制台输出')  //简写为log
      
  • 输入语法

    1. 显示对话框和文字信息

      promot('请输入姓名')
      

被引号包裹的内容可以用单引号’’、双引号""或反引号``


执行顺序:

  1. 按文档流顺序执行代码;
  2. alert()和promot()会跳过页面渲染先被执行

js字面量

字面量literal在计算机中描述事/物

  • 月薪是30000 此时30000是数字变量
  • ‘泥嚎’ 泥嚎是字符串字面量
  • [] 是数组字面量 {} 是对象字面量

变量、常量、数据类型

变量 let

变量是计算机中用来存储数据的容器,并不是数据本身。

变量的声明/定义/创建: 声明关键字 变量名 let age = 18

**变量的本质:**是程序在内存中申请的一块用来存放数据的小空间

存储输入的数据:

        let uname =prompt('请输入姓名')document.write('姓名:', uname, '。')//或者const age = prompt('请输入您的年龄')document.write('年龄:${age}<br>')

**数组变量:**直接声明,等号后写中括号,元素间用逗号隔开。

数组长度:变量名+点+length(最大元素的下标+1)

        let uname = [111, 222, 'num', 231]document.write('姓名:', uname[2], '。')document.write('数组长度:', uname.length, '。')

常量 const

声明时必须赋值,且不允许再次赋值,无法被修改。 const PI = 3.14


数据类型

基本数据类型:

  • **数字类型Number:**变量声明后直接创建。可以是整数、小数、正数、负数。

    js、Python是弱数据类型的语言:一个关键字可以声明任意类型的数字(整数、小数…)。

    而c、java就是强数据类型的语言:int整数、float或者double为浮点数。

    数字的运算符:算术运算符:

    • 优先级最大的是括号中或者次方(**:4**2表示4的4次方
    • 乘 除 取余
    • 加 减

    如果碰到非数字进行了算术运算,则会输出:NaN。

    NaN代表一个计算错误。它是粘性的:任何和其有关的操作都会返回NaN。“NaN==NaN”的命题也是错的。

  • **字符串类型string:**变量声明后用引号(单引号、双引号、反引号)包裹创建内容。注意若数字被引号包裹了,那它也是字符串类型。

    空字符串:let str = '' console'log('')

    字符串拼接:加号+ 可以把相邻的两个字符串或相邻的字符串和数字相连在一起。

    document.write('我今年' + 19 + '岁了')
    //等价于
    document.write('我今年', 19, '岁了')
    //或者
    let age = 19
    document.write('我今年' + age + '岁了')
    //或者
    let age = 19
    let aa = '我今年'
    let bb = '岁了'
    document.write(aa + age + bb)
    

    直接在字符串的引号中书写变量名:模版字符串

    字符串用反引号包裹,引号中的变量名用**${}**包裹

    document.write(`我今年${age}岁了`)
    
  • **布尔类型boolean:**判断真假的数据类型,有true(真)和false(假)两个数据类型

    let mybool = true
    document.write(mybool)
    

    若直接在输出内容中放一个判断问题(不加引号),也可以直接输出true或false

    document.write(99 < 1000)
    
  • 未定义类型undefined: 值直接为undefined。在不声明变量、不赋值的情况下默认值为undefined。一般不直接把某个变量赋值为undefined。

    let buy
    document.write(buy) //输出值为undefined
    

    **使用场景:**若后端有一个变量传过来,可以通过判断这个值是不是undefined来确定这个值是否有效。

  • 空类型null: null是对象数据类型(object),表示创建了变量但是没有赋值,代表“无”“空”“未知”的一个特殊值

    let obj = null
    

    undefined是没有赋值(什么也不是,不能参与运算),null表示赋值了但是内容为空(没有值,参与运算时默认为0)

    document.write(undefined + 1) //输出NaN
    document.write(null + 1) //输出值为1
    

    **使用场景:**如果一个变量中确定存放的是对象,但还没有准备好该对象,可以先放null

检测数据类型 typeof

在输出中使用,可以直接输出变量类型名

书写方法:

  • typeof + 空格 + 变量名(常用)
  • typeof + (变量名)
        let num = 10console.log(typeof num)  //输出numberlet str = 'pink'console.log(typeof str)  //输出stringlet no = ''console.log(typeof no)  //输出stringlet flag = falseconsole.log(typeof flag)  //输出booleanlet unconsole.log(typeof un)  //输出undefinedlet obj = nullconsole.log(typeof obj)  //输出object
http://www.dtcms.com/a/279276.html

相关文章:

  • 关于僵尸进程
  • SwiftUI 全面介绍与使用指南
  • SSM框架学习——day1
  • 爬虫-爬取豆瓣top250
  • webrtc之子带分割下——SplittingFilter源码分析
  • vscode插件之markdown预览mermaid、markmap、markdown
  • 直播推流技术底层逻辑详解与私有化实现方案-以rmtp rtc hls为例-优雅草卓伊凡
  • 当 `conda list` 里出现两个 pip:一步步拆解并卸载冲突包
  • 2025年轨道交通与导航国际会议(ICRTN 2025)
  • 【数据同化案例1】ETKF求解参数-状态联合估计的同化系统(完整MATLAB实现)
  • C#结构体:值类型的设计艺术与实战指南
  • 2025年新能源与可持续发展国际会议(ICNESD 2025)
  • 非正常申请有这么多好处,为什么还要大力打击?
  • TreeSize Free - windows下硬盘空间管理工具
  • 一分钟K线实时数据数据接口,逐笔明细数据接口,分时成交量数据接口,实时五档委托单数据接口,历史逐笔明细数据接口,历史分时成交量数据接口
  • RESTful API 设计规范
  • 为什么资深C++开发者大部分选vector?揭秘背后的硬核性能真相!
  • Nginx配置信息
  • 项目进度图不直观,如何优化展示方式
  • 一种用于医学图像分割的使用了多尺寸注意力Transformer的混合模型: HyTransMA
  • SecretFlow 隐语 (2) --- 隐语架构概览
  • SQL性能调优经验总结
  • Redis缓存解决方案
  • Laravel 中 chunk 分页漏掉数据?深度解析原因与解决方案
  • 深度剖析:动态接口代理核心原理与高级应用
  • 工业4.0时代的安全管理:2025年物联网与AI技术的融合与10+工具实践
  • NSSCTF Web 一点学习
  • 高安全前端架构:Rust-WASM 黑盒技术揭秘
  • 机器学习、深度学习、神经网络之间的关系
  • Binder 概述