1.1 声明变量

  • ECMAScript 变量是松散类型的,意思是变量可以用于保存任何类型的数据。每个变量只不过是一 个用于保存任意值的命名占位符。
  • 有 3 个关键字可以声明变量:varconstlet。其中,var 在 ECMAScript 的所有版本中都可以使用,而 const 和 let只能在 ECMAScript 6 及更晚的版本中使用。

1.var 关键字

  1. // 声明变量
  2. var age; // 声明一个 名称为age 的变量
  3. var age = 20; //ECMAScript 实现变量初始化,因此可以同时定义变量并设置它的值
  4. var name='yuanchuan',
  5. sex='nan',
  6. age=30; //可以同时声明多个变量,中间用逗号隔开
  • var 是一个 JS关键字,用来声明变量( variable 变量的意思 )。使用该关键字声明变量后,计算机会自动为变量分配内存空间,不需要程序员管
  • age 是开发者自己定义的变量名,我们须要通过变量名来访问内存中分配的空间
  • 变量声明时可以用逗号隔开,来声明多个变量

1.2 更新变量

当一个变量获得一个新的赋值,新的值会将旧的值给覆盖掉

  1. var p1=10 ;
  2. p1=20; //20将10给覆盖

1.3 变量声明特殊情况

情况 说明 结果
var age ; console.log (age); 只声明 不赋值 undefined
console.log(age) 不声明 不赋值 直接使用 报错
age = 10; console.log (age); 不声明 只赋值 10

1.4 变量命名规范

  • 由字母(A-Za-z)、数字(0-9)、下划线(_)、美元符号( $ )组成,如:usrAge, num01, _name
  • 严格区分大小写
  • 不能以数字开头
  • 不能是关键字或者保留字(具体可以百度查询关键字和保留字)
  • 变量名必须有意义,建议以单词命名
  • 遵从驼峰命名法,即第一个单词首字母小写,其余单词首字母大写 ,例如myLikeName

1.5 数据类型

  • ECMAScript 有 6 种简单数据类型(也称为原始类型):
    1. - Undefined :表示值未定义
    2. - Null:表示为空
    3. - Boolean:表示为布尔值
    4. - Number :表示为数值
    5. - String :表示为字符串
    6. - Symbol :表示为符号
  • Symbol(符号)是 ECMAScript 6 新增的。还有一种复杂数据类型叫 Object(对 象)
  • 只有 7 种数据类型似乎不足以表示全部数据。但 ECMAScript 的数 据类型很灵活,一种数据类型可以当作多种数据类型来使用。

    数字型 Number

    JavaScript中数字型可以保存整数和浮点数

    1. var num = 100;
    2. var Num = 100.111111

    isNaN

    在转换时判断值是否为数字型,如果是,返回false,如果不是,返回true
    图片17.png

    NaN

  • 表示在进行值转换时,转换成数字显示为数字,无法转成数字显示NaN

  • 有一个特殊的数值叫 NaN,意思是“不是数值”(Not a Number),用于表示本来要返回数值的操作 失败了(而不是抛出错误)。比如,用 0 除任意数值在其他语言中通常都会导致错误,从而中止代码执 行。但在 ECMAScript 中,0、+0 或-0 相除会返回 NaN:
    1. console.log(0/0); // NaN
    2. console.log(-0/+0); // NaN

字符串型 String

  • 字符串需要在值上加引号,因为 HTML 标签里面的属性使用的是双引号,JS 这里我们更推荐使用单引号。 ```javascript var name=’我是袁某’;
  1. <a name="Jz4rg"></a>
  2. ### 字符串转义符
  3. | 转义符 | 解释说明 |
  4. | --- | --- |
  5. | \\n | 换行符,n 是 newline 的意思 |
  6. | \\ \\ | 斜杠 \\ |
  7. | ' | ' 单引号 |
  8. | " | ”双引号 |
  9. | \\t | tab 缩进 |
  10. | \\b | 空格 ,b 是 blank 的意思 |
  11. <a name="wu8VA"></a>
  12. ### 字符串长度
  13. ```javascript
  14. var name='我是袁某';
  15. alert(name.length) //通过在变量名后面加.length来输出字符长度此长度为4

字符串拼接

  • 多个字符串间用+来拼接,多种类型值之间的拼接为:字符串+任何类型=新的字符串型
  • 拼接前会将与字符串相加的任何类型转换成字符串型,再拼接成一个新的字符串

    1. //1.1 字符串 "相加"
    2. alert('hello' + ' ' + 'world'); // hello world
    3. //1.2 数值字符串 "相加"
    4. alert('100' + '100'); // 100100
    5. //1.3 数值字符串 + 数值
    6. alert('11' + 12); // 1112
    1. console.log('袁某' + 48); // 只要有字符就会相连
    2. var age = 48;
    3. // console.log('袁某age岁'); // 输出为袁某age岁,多个值用加号拼接
    4. console.log('袁某' + age); // 袁某48
    5. console.log('袁某' + age + '岁啦'); // 袁某48岁啦
  • 经常会将字符串和变量来拼接,变量可以很方便地修改里面的值

  • 变量是不能添加引号的,因为加引号的变量会变成字符串
  • 如果变量两侧都有字符串拼接,在变量两侧添加加号

字符串插值

模板字面量最常用的一个特性是支持字符串插值,也就是可以在一个连续定义中插入一个或多个 值。技术上讲,模板字面量不是字符串,而是一种特殊的 JavaScript 句法表达式,只不过求值后得到的 是字符串。模板字面量在定义时立即求值并转换为字符串实例,任何插入的变量也会从它们最接近的作 用域中取值。
字符串插值通过在${}中使用一个 JavaScript 表达式实现:

  1. let value = 5;
  2. let exponent = 'second';
  3. // 以前,字符串插值是这样实现的:
  4. let interpolatedString =
  5. value + ' to the ' + exponent + ' power is ' + (value * value);
  6. // 现在,可以用模板字面量这样实现:
  7. let interpolatedTemplateLiteral =
  8. `${ value } to the ${ exponent } power is ${ value * value }`;
  9. console.log(interpolatedString); // 5 to the second power is 25
  10. console.log(interpolatedTemplateLiteral); // 5 to the second power is 25

所有插入的值都会使用 toString()强制转型为字符串,而且任何 JavaScript 表达式都可以用于插 值。嵌套的模板字符串无须转义:

  1. console.log(`Hello, ${ `World` }!`); // Hello, World!
  2. //将表达式转换为字符串时会调用 toString():
  3. let foo = { toString: () => 'World' };
  4. console.log(`Hello, ${ foo }!`); // Hello, World!
  5. //在插值表达式中可以调用函数和方法:
  6. function capitalize(word) {
  7. return `${ word[0].toUpperCase() }${ word.slice(1) }`;
  8. }
  9. console.log(`${ capitalize('hello') }, ${ capitalize('world') }!`); // Hello, World!
  10. //此外,模板也可以插入自己之前的值:
  11. let value = '';
  12. function append() {
  13. value = `${value}abc`
  14. console.log(value);
  15. }
  16. append(); // abc
  17. append(); // abcabc
  18. append(); // abcabcabc

布尔型 Boolean

布尔型只有两个值:true(数值为1)和false(数值为0)可以说输出1为对,输出0为错

  1. console.log(true + 1); // 2
  2. console.log(false + 1); // 1

Underfined和Null

  • undefined表示一个变量没有被声明,或者被声明了但没有被赋值
  • null是一个表示“没有值”的值
  • Javascript将未赋值的变量默认值设为undefined
  • Javascript从来不会将变量设为null。它是用来让程序员表明某个用var声明的变量时没有值的。
  • undefined不是一个有效的JSON,而null是
  • undefined的类型(typeof)是undefined
  • null的类型(typeof)是object.

  • 它们都是基本类型

  • null === undefined // false

清除字符串前后的空格(兼容所有浏览器)

  1. //考虑兼容性,如果不支持原生 trim(),则自定义一个trim() 方法
  2. if (!String.prototype.trim) {
  3. String.prototype.trim = function() {
  4. return this.replace(/^\s+/, "").replace(/\s+$/,"");
  5. }
  6. }
  7. // test the function
  8. var str = " \t\n test string ".trim();
  9. alert(str == "test string"); // alerts "true"