JS学习【一】(初识js,变量,数据类型转化, 解释器)

1.初识js

1.1Js的组成

1.1.1ES是什么

  • ECMAScript是由ECMA国际进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMAScript语言的实现和扩展。ECMAScript规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。

1.1.2DOM(文档对象模型)

1.1.3 BOM(浏览器对象模型)

1.2 JS的三种写法

  • 行内式
  • 如:<button onclick="alert('click')" >click me</button>
  • 内嵌式
  • 如:<script> alert("click") </script>
  • 外部引用
  • 如:<script src="main.js"></script>

2.变量

2.1 变量的本质和声明变量的本质

  • 变量的本质是内存中一块空间,用来存储数据
  • 声明变量的本质是去内存申请空间

2.2 变量语法拓展

2.2.1 只声明不赋值

var a;
console.log(a);
// =>undefined

2.2.2 不赋值不声明

console.log(b);
// =>报错

2.2.3 只赋值不声明

c = 10;
console.log(c);
// =>10(不推荐)

3.数据类型

3.1变量的数据类型

  • JS 是一种弱类型动态语言。这意味看不用提前声明变量的类型,在程序运行过程中,类型会
    被自动确定。
  • 在代码运行时,变量的数据类型由js引擎根据“=”号右边的值的数据类型来判断
  • js中,相同的变量可以赋值不同的类型,如var a = 5; a = "fdss"

3.2 数字型

  • NaN(Not a num)
  • isNaN(x): 判断x是否是一个数字类型

3.3 字符串型

  • 只要有字符串和其他类型拼接,结果就是字符串
cosole.log('12' + 12); 
// => '1212'
  • 用prompt函数输入的任何东西都是字符类型

3.4 布尔类型

  • true参与运算的时候当1算,false当0算

3.5 undefined(未定义数据类型) 和 null

  • 如果一个声明变量没有赋值,就是undefined类型

  • undefined/null 和 String类型 Number类型 Boolean类型相加

  var str2 = undefined;
  console.log(str2 + "aaa"); // => undefinedaaa
  console.log(str2 + 1); // => NaN
  console.log(str2 + true); // => NaN

  var str3 = null;
  console.log(str3 + "aaa"); // => nullaaa
  console.log(str3 + 1); // => 1
  console.log(str3 + true); // => 1

3.6 数据类型转化

3.6.1 数字型转字符型

  var num = 10;
  var str = num.toString();
  console.log(str); // => (String)10
  console.log(String(num)); // => (String)10
  console.log(num + ''); // => (String)10 最常用

3.6.2 字符型转数字型

  //1 parseInt 取整
  console.log(parseInt('3.555')); // => (Number)3
  console.log(parseInt("333aaa")); // => (Number)333
  console.log(parseInt('aaa333aaa')); // => (Number)NaN
  //2 parseFloat 得到浮点数
  console.log(parseFloat('3.555')); // => (Number)3.555
  console.log(parseInt("333.555aaa")); // => (Number)333
  console.log(parseInt('aaa333aaa')); // => (Number)NaN
  //3 强制类型转化
  console.log(Number('12')); // => (Number)12 
  //4 隐式转化
  console.log("12" - 0); // => (Number)12
  console.log("12" - "10"); // => (Number)2
  console.log("12" * 1); // => (Number)12

3.6.3 任何类型转Boolean

  console.log(Boolean("")); // => false
  console.log(Boolean(0));  // => false
  console.log(Boolean(NaN)); // => false
  console.log(Boolean(null));// => false
  console.log(Boolean(undefined));// => false
  // 其余均为 true,可当作是否非空的判断

4.解释型语言和编译型语言

翻译器翻译的方式有两种:一个是编译,另外一个是解释。两种方式之间的区别在于翻译的时间点不同

  • 编译器(java所用, 如javac.exe)是在代码执行之前进行编译,生成中间代码文件(如main.class)

  • 解释器(js所用, 如v8内核)是在运行时进行及时解释,并立即执行(当编译器以解释方式运行的时候,也称之为解释器)

(pink老师的图)
1597639641788

猜你喜欢

转载自blog.csdn.net/qq_43249043/article/details/108053704