JS-数据类型,变量,数据类型的转换;

目录

一.JS的组成

1.1 组成

二、ECMAScript

2.1 简介

2.2 ECMAScript

2.3 计算机的作用

2.4 数据类型介绍

2.5 JS的书写位置

2.5.1 HTML的script标签  (内嵌式)

2.5.2 JS文件中

2.5.2 写在行内

2.6 script标签的书写位置 (外部引入)

2.6.1 body标签的末尾

2.6.2 head标签的末尾

2.7 变量

2.7.1变量的使用

2.7.2 变量的命名规范

2.8 数据类型

2.8.1 字符串  (加了引号的)

2.8.2 数字类型 (整数或小数)

2.8.3 布尔值、

2.8.4 undefined (未定义的)

2.8.5 null (空,零)

2.9 数据类型判定

字面量

2.10 数据类型转换

2.10.1 数字型转字符串

判断是否是数字型  利用 isNaN();

​编辑

2.10.2 字符串转数字型

转换成布尔类型


一.JS的组成

1.1 组成

BOM(浏览器对象模型)、DOM(文档对象模型)、ECMAScript(核心语法);

JS解释器,运行的同时进行及时解释,并立即执行, 逐行执行代码,当某一处错误,报错,会卡住 ,不会执行后面的代码;


二、ECMAScript

2.1 简介

JavaScript是一种直译式脚本语言,它的解释器被称为JavaScript引擎,逐行解释并执行.

2.2 ECMAScript

JS是JavaScript的简称,ECMAScript是JS的核心语法,简称ES。

2.3 计算机的作用

计算机的作用就是处理数据。

所以,一门计算机语言,它一定要对数据进行规定。

所以,ES对数据进行了分类。

2.4 数据类型介绍

  1. 值类型(又可以叫做基本数据类型)

    1. 数字类型  (number)    深蓝色

    2. 字符串类型  (string)     黑色

    3. 布尔值(Boolean)   = (true、 false)     蓝色

    4. undefined       灰色

    5. null                 灰色

引用类型(又叫做对象类型)

总的来说,只要不是上面的五种,就属于引用类型

1. Array    
2. Object
3. Function
4. RegExp
5. ......

2.5 JS的书写位置

2.5.1 HTML的script标签  (内嵌式)

js代码写在html结构中的<script>标签内;

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // JS代码书写在这里
  </script>
</body>
</html>

2.5.2 JS文件中

<外部引入>  通过<script src = " 路径">标签外部引入js文件; <script>双标签内不能写内容;

如果是JS文件的话,那么我们需要通过script标签的src属性,把它引入。

<script src="01.js"></script>     <script></sccript>便签内不能有内容

一个是JS文件中,一个是HTML文件中的script标签里。

区别就在于:最终HTML文件的体积。体积影响了传输速度。所以,写代码都往JS文件中写。

2.5.2 写在行内

<input type="button" value="按钮" onclick="alert('Hello World')" />

2.6 script标签的书写位置 (外部引入)

2.6.1 body标签的末尾

<body>
  ...
  ...
  ...
  <h1>今天是js的第一天</h1>
  <!-- 上面是HTML  下面是JS -->
  <script>
    // JS代码书写在这里
    // document.write('<h1>今天是JS的第一天</h1>')
  </script>
  <script src="01.js"></script>
</body>

放在body末尾的原因; 浏览器在执行代码的时候是从上往下执行(逐行解析),而JS又是可以操作元素的。必然要先有元素再执行JS才是合理的。

2.6.2 head标签的末尾

有时我们会见到放在head标签末尾的JS,这是因为它里面的代码被推迟了执行时间。

  <script>     window.onload = function() {       alert("所有资源加载完毕了")     }   </script>

window.onload 这是一个后面要讲的"事件" 它会在当前页面所需的所有资源加载完毕之后执行。

补充: 一个script标签 如果设置了src 就不要再在里面写代码了


2.7 变量

变量就是用来储存数据用的容器;

之后每一次使用变量都是在使用这个数据。

变量,当然是因为它的内容可变。

2.7.1变量的使用

var 是js关键字,(variable)    [variable  可变的,多变的,变量]

1.声明(定义)变量: var 变量名 ;

var age;

2.赋值: var 变量名 = 初始值;   [= 是赋值,把右边的值赋给左边]  (变量的初始化:声明一个变量,并赋值.)

var num1;
var num = 3;

3. 使用变量:   

输入、输出语句;

alert(‘内容’)弹出一个警示框; prompt(‘内容’)弹出一个输入框; console.log('控制台') 控制台输出;

变量的扩展:

1.变量的更新; 一个变量重新被定义,会覆盖原来的值, 以最后一次赋值为准;

2.同时命名多个变量; 只需要写一个var ,多个变量名之间, 英文逗号,隔开,  最后一个 ; 结尾.

var num1 =  '内容',

      num2 = '内容',

      num3 = 'neirong';

声明变量的特殊情况;

  1. 如果一个变量只是定义(定义也叫声明)了,没有给初始值,此时它的值是undefined。 例如: var age ; console.log(age)
  2. 不声明,不复制,直接使用,报错; 例如: alert(tel);
  3. 不声明;直接复制 ,可以使用,但不推荐;  例如:  qq = 123;  alert(qq);

2.7.2 变量的命名规范

  1. 整体由数字(数字不能开头)、字母、下划线、美元$符号组成

  2. 不可以由数字开头

  3. 不能使用关键字、保留字当做变量名称  (js语言使用的,保留的)

  4. 严格区分大小写    如 : var app 不等于 var App;

  5. 推荐使用驼峰命名法; (首个字母小写,后面每个单词首字母大写)  如:  var myFirstName;


2.8 数据类型

js是一种弱类性或动态语言;不用提前声明变量的类型,在程序运行中会被自动确定;

数据类型会根据等号右边的值来决定; 相同的变量可用作不同的类型;

2.8.1 字符串  (加了引号的)

引号 引起来的就是字符串类型

定义:单引号 ' 或者 双引号 " 推荐使用 单引号

var str = "这就是一段字符串";
var str1 = '我是一个新字符串';

注意: 单引号开头,就必须单引号结尾。双引号开头就必须双引号结尾。

字符串引号的嵌套: 单引号嵌套双引号 (外单内双); 双引号嵌套单引号(外双内单);

字符串的拼接

  • 字符串拼接使用 + 连接  ,引引加加;
  • 两边只要有一个是字符串,那么+就是字符串拼接功能
  • 两边如果都是数字,那么就是算术功能。
console.log(11 + 11);    //22
console.log('hello' + ' world');  //helloworld
console.log('100' + '100');  //100100
console.log('11' + 11);   //1111
console.log('male:' + true);   //maletrue

字符串长度

length属性用来获取字符串的长度    (空格和标点符号也算)   返回的是数字型

var str = '黑马程序猿 Hello, World!';
console.log(str.length);    //19

转义字符

JS的字符串中,有转义字符这么一个概念。为了解决部分符号具备双重含义的特点。

var str ="'你好啊!'. Tom说:\"今天天气不错啊\""

\就是用于转义的符号,放置在引号之前;

转义字符有: \b 空格;  \n 换行;   \t  缩进 ; \\斜杠 等


2.8.2 数字类型 (整数或小数)

定义数字就是直接用键盘敲,默认是十进制。

进制的数字:

定义二进制: 0b101       数字范围:0和1;

定义八进制:0开头;       数字序列范围:0~7;

定义十六进制: 0x开头;   数字序列范围:0~9以及A~F;

特殊数字:

NaN 表示 "不是一个数"  not a number;

Infinity 表示 "无穷大"

-Infinity 表示 "无穷小"

浮点数(小数)

  • 浮点数的精度问题
  • var n = 5e-324;   // 科学计数法  5乘以10的-324次方  
    浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数
       var result = 0.1 + 0.2;    // 结果不是 0.3,而是:0.30000000000000004
       console.log(0.07 * 100);
       不要判断两个浮点数是否相等

2.8.3 布尔值、

布尔值: true、 false

计算机内部存储:true为1,false为0;

布尔型和数字型相加,true代表1; false代表0;

2.8.4 undefined (未定义的)

一个变量声明后,未被赋值的,默认是undefined;

undefined

2.8.5 null (空,零)

null 

null表示一个空,变量的值如果想为null,必须手动设置

2.9 数据类型判定

typeof 关键字 这个关键字的作用:判定数据类型

判定字符串

var str = '明月松间照';
console.log(typeof str)   //string

判定数字

 var num = 123
 console.log(typeof num)  //number

判定布尔值

var bool = true
console.log(typeof bool)   //bollean

判定undefined

var und = undefined
console.log(typeof und)   //undefined

判定null (这是一个bug,ES是不会修复它的)

var nulls = null
console.log(typeof nulls)   //object

如果用typeof对一个不存在的变量做判定, 不会报错 而是undefined ,可以利用这一点对某一个变量是否存在作判定

字面量

在源代码中一个固定值的表示法, 就是利用字面量如何表达这个值;

数值字面量:8, 9, 10,.......        控制台字体颜色: 深蓝色;

字符串字面量:'黑马程序员',    控制台字体颜色: 黑色;

布尔字面量:true,false           控制台字体颜色: 蓝色;

                                                  null和undefined控制台字体颜色: 灰色;


2.10 数据类型转换

2.10.1 数字型转字符串

  1. String(变量)   S大写

  2. 变量.toString()    S大写

  3. 拼接空字符串   变量 + ' '   (隐式转换)  {和字符串拼接的结果都是字符串}   ( +号 这个符号有两个含义 1.数学加法运算符  2.字符串的拼接符号)

  4. 变量.toFixed()保留几位小数    ()括号内是保留几位小数;  F大写;

 


判断是否是数字型  利用 isNaN();

  1. isNaN(不是数字)
  2. isNaN()方法:判断某些值是不是数字
  3. 不是数字:true
  4. 是数字:false
  5. 只要是数字就为false
  6. isNaN( )判断原理:
  7. 首先给内部Number( )进行转换,只要Number( )转换出来是数字直接为false,不是数字为true.

alert(isNaN('250'));//false
首先用isNaN的兄弟Number()进行转换为'250' =>数字250,然后给isNaN,isNaN一看,原来是数字,直接就是false.

alert(isNaN(true));//false
首先用Number()进行转换 true => 1 ,isNaN一看是数字1,直接为false.
具体Number()方法转换参考数据类型转化文章

alert(isNaN(2));//false 是数字为false
alert(isNaN(200));//false 是数字为false

alert(isNaN('你好'));//true 字符串为true,只要不是数字都为true
alert(isNaN(function(){alert(1)}));//true 函数也是true,只要不是数字都为true

2.10.2 字符串转数字型

  1. parseInt()  取整数;可以去单位;

  2. parseFloat()  可以取小数;去单位;

  3. Number()  可以取小数,整数,不能去单位;

  4. +变量           可以取小数,整数,不能去单位;

5.  减 乘 除 取余 隐式转换;   +加号是字符串的隐式转换


转换成布尔类型

  • Boolean( )

0 ''(空字符串) null undefined NaN 会转换成false; 其它都会转换成true

<sript>
      var bool = Boolean("hello");
      console.log(bool); //true

      var bool = Boolean(1);
      console.log(bool); //true

      var bool = Boolean(0);
      console.log(bool); //false

      var bool = Boolean("");
      console.log(bool); //flase

      var bool = Boolean(null);
      console.log(bool); //false

      var bool = Boolean(undefined);
      console.log(bool); //false

      var bool = Boolean(NaN);
      console.log(bool); //false
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值