01day-js入门

js入门

认识js

js是什么?

javascript 是一种属于网络的脚本语言,已经被广泛用于web应用的开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。

在我们的网页中

  • html:页面结构(表示了你的页面内有什么)
  • css:页面样式(表示了你的页面中的每一个内通是什么样子的,在什么位置)
  • javascript:页面行为(表示了你的页面内容如何发声变化,有哪些行为内容)

上面就是我们常说的前端三剑客。

js的三大核心
  1. ECMAScript
    js的语法规范,告诉你如何去写代码

  2. BOM- Browser Object Model(浏览器对象模型)
    一套操作浏览器的属性和方法

  3. DOM- Document Object Model(文档对象模型)
    一套操作文档流的属性和方法

本质:使用 js 的语法以及提供的属性和方法,去让浏览器和文档流发生变化。

js 代码书写

行内式(强烈不推荐)
  1. a标签
  • 在href属性的位置书写你要执行的js代码
  • 为了和跳转的行为做一个区分
  • 会在href的值的位置书写一个 javascript:代码;
    第一段js代码
  <a href="javascript:alert('hello word!!')">点击跳转到页面</a>
  • alert(‘文本内容’)
  • 注意:alert内的文本需要用引号包裹,单双都可以。
  • 意义:在浏览器内弹出一个提示框,提示框里面的内容就是书写在小括号内部的文本
  • 当点击a标签时,不会跳转,而是去执行一段js代码
  1. 非a标签
  • 当feia标签执行js代码的时候,我们需要给他一个行为属性,在属性值的位置,直接书写js 代码即可
  <div onclick="alert('hello world')">点击我</div>
内嵌式(不推荐的书写方式)
  1. 在页面中书写script双标签
  2. 把你需要执行的js代码,书写在这个script标签对内部
  3. 几个注意点:
  • script标签对内的代码不需要行为来触发,打开页面就会自动执行
  • script 标签对原则上可以书写在页面的任何位置 推荐放在head标签末尾,或body标签的末尾
  • 一个页面原则上可以书写任意个script标签,会按照从上到下的顺序依次执行每个script标签中的代码。
外联式(推荐的书写方式)

把 js 代码书写在一个.js后缀的文件中,在文件中不需要书写script,会按照从上往下的顺序依次执行js代码,在html文件内,通过script的src属性引入页面。

注意:

  • 外联的js代码,不要任何行为,打开页面即执行
  • 一个script标签上,当你书写了src属性以后,表示你要把他当作外联js来使用,那么此时内嵌式就不再生效。

js的注释

  1. 单行注释
  • 作用:对一行代码进行解释说明
  • 快捷键:ctrl + ?
// 在浏览器弹出提示框
alert("今天天气真热啊")
  1. 多行注释
  • 作用:解释说明多行代码
  • 快捷键:alt + shift + a
alert("今天天气真热啊,出太阳了都")
/* 
  alert("今天天气真热啊,出太阳了都")
  这是一个弹窗
*/

js 的变量

什么是变量?
在程序的运行过程中,一个用来保存中间值的内容,叫做变量

如何定义变量

语法:var 名字 = 值;

  1. var 定义变量的关键字,告诉浏览器,我下面的操作实在定义变量
  2. 空格 分开关键字和名字的作用
  3. 名字 你自己起的变量名
  4. 等于号 学名(赋值符号),把符号右边的内容,给到左边的变量。
var a = 10086;
定义变量的几种方式
  1. 定义不赋值
    语法:var a
    准备一个变量,以后使用,暂时不赋值

  2. 定义并赋值
    语法:var b = 100
    准备一个变量的同时,给他赋值某个数据

  3. 一次性定义多个变量不赋值
    语法:var c,d,e;
    同时定义多个变量,但是都不赋值

  4. 一次性定义多个变量并赋值
    语法:var f = 10,h = 20;
    同时定义多个,并且都赋值

  5. 一次定义多个变量,有的赋值,有的不赋值
    语法:var i = 100,j,k = 200;

    var b;
    var c = 100;
    var d,e,f,g;
    var h = 1,i = 2, j = 3;
    var k = 10,l,m = 20;

js的输出语法

alert(内容)
  • 内容:
    • 如果输出的是纯文本,那必须包裹引号
    • 如果输出的是数字,那么有没有引号都可以
    • 你输出的内容没有引号包裹时,会当作变量来解析,如果没有该变量就会报错
  • 作用:
    • 在浏览器弹出一个提示框
console.log(内容)
  • 作用:在浏览器的控制台显示输出内容
console.log(a);
document.write(内容)
  • 作用:在浏览器页面显示内容
  • 特点:可以输出html结构,结构会被浏览器正常识别
document.write("<h1>xixi</h1>")

交换变量

bar a = 10
a=20
console.log(a)

概念:

  • 在js中,一个变量只能保存一个值
  • 当你给这个变量设置第二个值的时候,后面给的值覆盖前面给的值。
    var a = 10;
    // 一个变量存着一个值
    // 赋值为10
    console.log(a);
    // 使用 打印出显示为 10

    a = 20;
    // 给a本身设置第二个值
    // a本身存的是10,但是我又赋值为20了
    // 所以10被覆盖了
    // 从此以后,a保存的就是20;
    console.log(a);

    console.log(a);
交换变量
    var x = 5;
    var y = 6;

    var tmp = x;

    x = y;
    y = tmp;

    console.log(x);
    console.log(y);

变量的命名规则和规范

规则

必须遵守,不遵守就报错

  1. 一个变量名只能有数字、字母、美元符号以及下划线组成
    var num123;
    var $123;
    var $0_0$;
    var $$$;
    var $;
  1. 一个变量不能以数字开头

  2. 严格区分大小写。

    var num = 1;

    var Num = 2;

    console.log(num);
    console.log(Num);
    // 说明,num和Num是两个不同的变量
  1. 不要使用关键字和保留字
  2. 关键字 js 正在使用的 var
  3. 保留字 js 暂时没有用,但是将来可能要用。
规范

规范:建议你遵守

  1. 建议变量语义化
  • 当你定一个变量的时候,尽量使用一个有意义的单词
  • username、password、userEmail、content
  • yonghuming\mima\youxiang\zhuti(第四声)
  1. 驼峰命名
  • 当一个单词有多个单词组成,第二个单词开始首字母大写
  • userName\getuserinfo\getUserInfo
  1. 不要用中文(不要使用)
  • h5的标准下,可以使用
  • 但是禁止使用,因为不够giao级。

js 数据类型

基本数据类型
  1. string 字符串
  • 一切被单引号、双引号包裹的内容
  • 表示一段没有意义的文本
    var s1 = "hello word";
    var s2 = "100";

    console.log(s1);
    console.log(s2); // 黑色字体
    console.log(100); // 蓝色字体
  1. number 数字
  • 整数
  • 浮点数
  • 科学计数法
  • 进制
    var n1 = 100;
    var n2 = 200;
    console.log(n1 + n2); // 300
  1. Boolean 布尔
  • 只有两个值
  • true 表示 真
  • false 表示 假
    var b1 = true;
    var b2 = false;

    console.log(b1);
    console.log(b2);
  1. undefined 和 null
  • undefined类型只有一个值 就叫做undefined
    本该有一个值,但是没有
  • null类型,只有一个值,就是null
    有值,有一个空值
    一个变量只有赋值为null才是null
复杂数据类型(暂时不聊)

检测数据类型

  • 关键字:typeof
  • 语法:
    • typeof 要检测的变量
    • typeof(要检测的变量)
  • 结果:
    • 我们检测的变量的数据类型
    • 字符串的形式给你
  • 两种语法的区别
    • ()
    • 当你需要检测两个内容的运算结果的时候,必须要使用()包裹起来
  • 注意
    • typeof 的结果必然是一个字符串类型
    • 当多个typeof 连写的时候,最终的结果必然是string。
var s1 = "hello word";
    var s2 = "100";

    console.log(s1);
    console.log(s2); // 黑色字体
    console.log(100); // 蓝色字体

    var n1 = 100;
    var n2 = 200;
    console.log(n1 + n2); // 300

    var b1 = true;
    var b2 = false;

    console.log(b1);
    console.log(b2);

    var u1 = undefined;
    var u2;
    console.log(u1);

    var nul1 = null;
    console.log(nul1);

    var res = typeof(s1)
    console.log(res); // string

    var res2 = typeof(n1);
    console.log(res2); // number

    var res3 = typeof n1;
    console.log(res3); // number

    var res4 = typeof n1 + s1;
    console.log(res4); // numberhello word

    var res5 = typeof(n1 + s1);
    console.log(res5); // string
    console.log(n1 + s1);

    var res6 = typeof typeof n1;
    console.log(res6); // number

    var res7 = typeof u1;
    console.log(res7); // undefined

    var res8 = typeof u2;
    console.log(res8); // undefined

    var res9 = typeof b1;
    console.log(res9); // boolean

    var res10 = typeof b2;
    console.log(res10); // boolean

    var res11 = typeof nul1;
    console.log(res11); // null

数据类型转换

转换成数字类型
Number()
  • 语法:Number(你要转换的内容)
  • 返回值(结果):转换后的数值类型
  • 转换规则
    • 把你要转换的内容当作一个整体
    • 如果能转成合法数字,那就是这个数字 “1998” -》1998
    • 如果不能转换成合法数字 NaN
    var age = "18";
    console.log(typeof age);
    var r1 = Number(age);
    console.log(r1); // 18

    var s1 = "abc";
    var r2 = Number(s1);
    console.log(typeof r2); // NaN
    // NaN Not a Number 不是一个数字的数字
    var b1 = true;
    var r3 = Number(b1);
    console.log(r3); // 1

    var u1 = undefined;
    var r4 = Number(u1);
    console.log(r4); // NaN

    var nul1 = null;
    var r5 = Number(nul1);
    console.log(r5); // 0
parseInt()
  • 语法:parseInt(你要转换的内容)
  • 返回值:转换后的数值类型
  • 规则:一位一位去看待,不认识小数点
    • 如果第一位可以转换,那么继续看第二位,以此类推 直到转不了,或者到达末尾。
    • 如果第一位不能转成合法数字,那么直接给出NaN的结果,停止转换
    var s1 = "100";
    var r1 = parseInt(s1);
    console.log(r1);// 100
    
    var s2 = "100.2";
    var r2 = parseInt(s2);
    console.log(r2); // 100

    var s3 = "1a00";
    var r3 = parseInt(s3);
    console.log(r3); // 1

    var s4 = "a100";
    var r4 = parseInt(s4);
    console.log(r4); // NaN
parseFloat()
  • 语法:同上
  • 返回值:同上
  • 规则:和parseInt类似。唯一不同的是,他认识小数点
    var s1 = "100";
    var s2 = "100.1";
    var s3 = "10a.1";
    var s4 = "a1bc";

    console.log(parseFloat(s1)); // 100
    console.log(parseFloat(s2)); // 100.1
    console.log(parseFloat(s3)); // 10
    console.log(parseFloat(s4)); // NaN
非加法的数学运算
  • 转换规则和Number一样
    var s1 = 100;
    var s2 = "100.1";
    var s3 = "10a.1";
    var s4 = "a1bc";
    var s5 = "abc";
    var s6 = "10";

// 遇到+和字符串 优先考虑字符串拼接
    console.log(s1 + s5); // 100abc
    console.log(s1 / s5); // NaN
    console.log(s1 * s6); // 1000
转布尔

把其他数据类型转换成布尔的true或false

Boolean()
  • 语法:Boolean(你要转换的内容)
  • 返回值:转换好的布尔值

在js内 有5个内容经过转换后会得到false

  1. 0
  2. 空字符串
  3. NaN
  4. undefined
  5. null
      var a = 10;
    console.log(Boolean(0)); // false
    console.log(Boolean(1)); // true
    console.log(Boolean("")); // false
    console.log(Boolean(" ")); // true
    console.log(Boolean(undefined)); // false
    console.log(Boolean(NaN)); // false
    console.log(Boolean("false")); // true
    console.log(Boolean(null)); // false
    console.log(Boolean(-0)); // false
    console.log(Boolean(-0.000000000001)); // true
    console.log(Boolean(false)); // false
    console.log(Boolean(a)); // true
转字符串
String()
  • 语法:String(你要转换的内容)
  • 返回值:转换后的字符串
  • 任意数据类型都可以转换
      console.log(String(null)); // "null"
      console.log(String(undefined)); // "undefined"
      console.log(String(true)); // "true"
      console.log(String(111)); // "111"
      console.log(String(NaN)); // "NaN"
      console.log(String({a:10})); // "[object Object]"
      console.log(String([1,2,3])); // "1,2,3"
      console.log(String(function fn(){
        console.log(1);
      })); // "function fn(){ console.log(1);}"
toString()
  • 语法:你要转换的内容.toString()
  • 返回值:转换后的字符串
  • 注意:不能转换null和undefined
      var num = 10;
      // toString的另一种用途就是转换进制
      // (n)n表示进制
      console.log(num.toString(16));

补充

  1. String
// 反单引号 也是字符串

      var num = 10;
      // toString的另一种用途就是转换进制
      // (n)n表示进制
      console.log(num.toString(16));
      var s1 = `你好`;
      console.log(s1);
      var money = 100000000;
      var str = "我的薪水";
      var res = `我的薪水是${money}`
      var res2 = str + money;
      console.log(res);
      console.log(res2);

// 字符串有一个长度属性
// 通过这个属性可以知道字符串有多长
console.log(res.length); // 14

// 获取字符串的内容
console.log(res[2]);// 薪
  1. 类型判断
      var bool = true;
      var num = 1;
      var str = "abc";
      var und = undefined
      var nul = null;

      // 暂时不纠结
      var arr = [1,2,3]
      var obj = {
        name:"xixi"
      };
      var fun = function (){
        console.log("我是一个函数");
      };
      // console.log(typeof arr);
      // console.log(typeof obj);
      // console.log(typeof fun);
      console.log(Object.prototype.toString.call(bool).slice(8,-1));
      console.log(Object.prototype.toString.call(num).slice(8,-1));
      console.log(Object.prototype.toString.call(str).slice(8,-1));
      console.log(Object.prototype.toString.call(und).slice(8,-1));
      console.log(Object.prototype.toString.call(nul).slice(8,-1));
      console.log(Object.prototype.toString.call(arr).slice(8,-1));
      console.log(Object.prototype.toString.call(obj).slice(8,-1));
      console.log(Object.prototype.toString.call(fun).slice(8,-1));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值