Project_OKI’s diary

エンジニアの勉強ブログ

5Vトレラントとは

マイコンのGPIOに書いてある5Vトレラントとは

この記事では、5Vトレラントについて説明する。

 

1. 5Vトレラントとは

 ・基本的にマイコンの入力は電源電圧が入力の最大値になっていることが多い。

 ・それに対し、電源電圧に関係なく5Vまで、GPIOの入力として使用できるということを5Vトレラントという。

 参考:ICの「5Vトレラント」とは?

 

2. nucleof401REの5Vトレラント

・データシートの下記FTとなっている場所が、5Vトレラントとなる。

  このFTが記載されている場所であれば、5Vを入力しても問題はない。

データシート:DS10086 | STM32, STM8ファミリはSTの32bit/8bit汎用マイクロコントローラ製品

 

3. obniz Board 1Yの5Vトレラント

  obniz Board 1Yは、全てのピンが5Vトレラントになっている。

 下記Obniz Board 1Yを参照

 ・Obniz1Y のピン配置:PinOut - obniz Docs

 

関連記事

過去の記事:

javascript11(√(平方根)、π、べき乗の計算)

javascriptの√(平方根)、π、2乗の計算

この記事では、javascriptの√計算、π計算、べき乗計算の方法について記載する。

 

1. 目的

 ・javascriptで√計算、π計算、べき乗計算できるようになる。

 

目次

 

2. √,π,べき乗計算のやり方

 //πの計算(π = 3.14159・・・)
 Math.PI      //≈3.14159
//平方根の計算
 Math.sqrt( 平方根する値、計算式);
//べき乗計算
 a ** b  // = aのb乗

 

 

参考:

Math.PI - JavaScript | MDN

Math.sqrt() - JavaScript | MDN

べき乗 (**) - JavaScript | MDN

 

3. プログラム作成(π,平方根、べき乗の計算確認)

//πの値確認
console.log("π="+Math.PI);       //π = 3.141592・・・

//平方根の計算確認
console.log("√2="+Math.sqrt(2));  //√2 = 1.414・・・
console.log("√3="+Math.sqrt(3));  //√3 = 1.732・・・

//べき乗の計算確認
console.log("5の2乗="+5**2);      //5の2乗 = 25
console.log("2の3の2乗="+2**(3**2)); //3の2乗=9, 2の9乗 = 512
console.log("2の9乗="+2**9);      //2の9乗 = 512
console.log("10の-2乗="+10**-2);    //10の-2(1/2)乗 = 0.01

計算結果:https://paiza.io/projects/h_F3wdY6tgao7xM2Qdtu8g

 

 

関連記事

過去の記事:

HTML,CSS,Javascript10(javascriptの関数と関数式)

javascriptの関数と関数式

この記事では、javascriptの関数と関数式について記載する。

 

1. 目的

 ・javascriptで関数と関数式を使えるようになる。

 

目次

 

2. 関数とは

 ・構成要素の一つ

 ・様々な処理を一つにまとめて、その処理に名前を付けることが出来る。(無名のものもある。)

 ・目的ごとに処理を分けたり、同じ処理を複数回行う場合に、一度定義した関数を使用することでコードの削減や可読性を上げることが出来る。

参考:

関数 - JavaScript | MDN

function 宣言 - JavaScript | MDN

Hoisting (巻き上げ、ホイスティング) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN

 

3. 関数式とは

 ・関数を値として変数へ代入している式

 ・関数宣言は文、関数式は関数を値として扱う。

 ・関数宣言と違い、定義前に関数式を使用することはできない。(関数宣言は、定義前に使用可能)

 

参考:

関数と宣言 · JavaScript Primer #jsprimer

関数式 - JavaScript | MDN

 

3. 関数の作成(定義)方法

//function宣言での関数の作成
function 関数名(引数){
//実行する関数の内容  return returnする変数; }
//function式での関数の作成(無名関数)
型 関数名 = function(引数){
//実行する関数の内容
 return returnする変数;
}

 

例:

//function宣言での関数の作成
function Name(num) {
//実行する関数の内容
  return 2*num; }

//function式での関数の作成
const funcName = function(num){
  return 2*num;
}

 

 ・function:関数を定義する時に使用する。

 ・引数:関数で使用する変数の値や、オブジェクトなど。(引き渡す値がある場合に入れる。)

 ・return:返り値、関数で実行した値を戻す。(戻す値などがある場合に入れる)

 

3. 関数の使用

//引数を渡し、戻り値がある場合。 
変数 = 関数(引数);

//引数を渡して、関数を実行する。
関数名(引数);

//引数を渡し、戻り値がある場合。
変数 = 関数();

//関数を実行する場合 関数();

 

例:

let Num = Name(2);

 

・2という数値をNameという関数に引数として渡す。

・その計算結果でreturnで戻された値をNumという変数に入れている。

 

4. プログラムの作成(2倍にする関数の作成と実行)

<!DOCTYPE html>
<html lang="ja">
  <head>
  	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2倍</title>
  </head>
  
  <body>
	<p> NUM入力 <input type="text" size="15" value="300" id ="Num"></p>
	<p> 2倍の算結果_関数 <input type="text" size="15"  id = "ans"></p>
	<p> 2倍の算結果_関数式 <input type="text" size="15"  id = "ans2"></p>
	

	<script>
/**	************************************************************** */
/**
 *	2倍にする関数
 *	@param	num		: 数値
 *	@return			: 2倍の値
 */
/**	************************************************************** */		
		let Dou2 = function(num){
			return 2*num;
			}
	
		//Num1の値を取得
		let lnum1 = parseInt(document.getElementById("Num").value);
		//ansのidを取得
		let lans = document.getElementById("ans");
		//ans2のidを取得
		let lans2 = document.getElementById("ans2");

		//Double関数の実行
		lans.value = Double(lnum1);
		//Dou2の関数実行
		lans2.value = Dou2(lnum1);

/**	************************************************************** */
/**
 *	2倍にする関数
 *	@param	num		: 数値
 *	@return			: 2倍の値
 */
/**	************************************************************** */
		function Double(num){
			return 2*num;
		}
		
/*		こっちだとエラーになる。
		let Dou2 = function(num){
			return 2*num;
			}
*/
	</script>
  </body>
</html>

 

実行結果

ーーーーーーーーーーーーーーー

NUM入力

2倍の算結果_関数

2倍の算結果_関数式

ーーーーーーーーーーーーーーー

 

5. 無名関数の作成(定義)方法

function(){
 //実行する関数の内容  return returnする変数; }

 

例:

function () {
  return 2*num;
}

 ・これは、良くHTMLでイベントが発生した時に、実行したい動作を書くのによく使われる。

 

6. プログラムの作成(クリック時に2倍に計算する)

<!DOCTYPE html>
<html lang="ja">
  <head>
  	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2倍</title>
  </head>
  
  <body>
	<p> NUM入力 <input type="text" size="15" value="300" id ="Num2"></p>
	<p> 足し算結果 <input type="text" size="15"  id = "ans2"></p>
	<p> 計算実行  <input type="button" size="10"  id = "button"></p>
	

	<script>
		//変数宣言
		let lnum2;
		
		//ansのidを取得
		let lansid2 = document.getElementById("ans2");
		let lbuttonid = document.getElementById("button");
		
		//ボタン押下時実行(取得したNumの値を2倍にして、出力)
		lbuttonid.addEventListener("click",function(){
			//Num2の値を取得
			lnum2 = parseFloat(document.getElementById("Num2").value);
			lansid2.value = lnum2*2;
		})
	</script>
  </body>
</html>

実行結果

ーーーーーーーーー

NUM入力

足し算結果

計算実行

ーーーーーーーーー

 

 HTMLの基本の参考:

 ・HTML の基本 - ウェブ開発を学ぶ | MDN

HTMLのidとは?使い方やclassとの違いについても解説 | 侍エンジニアブログ

【HTML】id属性とは? 使い方と特徴を解説 | ZeroPlus Media

 ・HTML Living Standardリファレンス

 

関連記事

過去の記事:

反転増幅回路と非反転増幅回路の自動計算(増幅度、ゲイン、出力電圧)

オペアンプ反転増幅回路、非反転増幅回路の自動計算

この記事では、反転増幅回路と非反転増幅回路の下記自動計算を行う。

 入力:

 ・抵抗R1(入力抵抗)

 ・抵抗R2(帰還抵抗)

 ・入力電圧[V]

 出力:

 ・増幅度[倍]

 ・電圧利得(Gv)[dB]

 ・出力電圧[V]

 

また、それぞれの計算方法について記載する。

 

1. 反転増幅回路と非反転回路の自動計算

・反転増幅回路

・非反転増幅回路

 

抵抗値R1,R2と、入力電圧を入力してください。

R1入力

R2入力

Vin入力

 

計算結果

反転増幅回路増幅度 [倍]= [dB]

出力電圧[V]

 

非反転増幅回路増幅度 [倍]= [dB]

出力電圧[V]

 

オペアンプは理想オペアンプを想定。

 オープンループゲインは∞としている。

 

2. 反転増幅回路と非反転回路の算出方法

反転増幅回路の計算

 ・増幅度 = R2の抵抗値[Ω]  / R1の抵抗値[Ω]

 ・電圧利得(Gv) = 20×log(増幅度)

 ・出力電圧 = - Vin × 増幅度

 

非反転増幅回路の計算

 ・増幅度 = 1 + R2の抵抗値[Ω]  / R1の抵抗値[Ω]

 ・電圧利得(Gv) = 20×log(増幅度)

 ・出力電圧 =  Vin × 増幅度

 

 

 

3. 算出プログラム

<!DOCTYPE html>
<!--
概要:反転増幅回路の計算ホームページ
・反転増幅回路の画像を表示
・抵抗及び、入力電圧記入欄を用意
・記入した抵抗と、入力電圧から、
 増幅度、出力電圧を出力
-->
<html lang="ja" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>増幅度計算ページ</title>
  </head>


  <body>
    <p>反転増幅回路、非反転増幅回路の計算ページです</p>
    <p>抵抗値R1,R2と、入力電圧を入力してください。</p>
    <!--<img src="画像の名前" width="横幅の値" height="縦幅の名前" alt="画像の読み上げの名前" title="画像の表示名"  -->
    <!--画像表示参考リンク:https://techacademy.jp/magazine/5827  -->
    <!--反転増幅回路と、非反転増幅回路の画像の表示  -->
    <img src="jpg/Invertingamplifier.PNG" width="400" height="200"alt="反転増幅回路" title="反転増幅回路">
    <img src="jpg/Noninvertingamplifier.PNG" width ="400" height ="200" alt = "非反転増幅回路" title="非反転増幅回路">

    <!--増幅回路の入力フォーム  -->
    <p> R1入力 <input type="text" size="15" id="R1" value="0"></p>
    <p> R2入力 <input type="text" size="15" id="R2" value="0"></p>
    <p> Vin入力<input type="text" size="15" id="Vin" value="0"></p>

    <p> 反転増幅回路増幅度 <input type="text" size="15"id="Invertingamplifier_times" value=0> [倍]=
         <input type="text" id="Invertingamplifier_log" size="15" value=0>[dB]</p>
    <p> 出力電圧<input type="text" id="Invertingamplifire_Vout" size="15" value=0>[V]</p>

    <p> 非反転増幅回路増幅度 <input type="text" id="Noninvertingamplifier_times" size="15" value=0>[倍]=
        <input type="text" id="Noninvertingamplifier_log" size="15" value=0>[dB]</p>
    <p> 出力電圧<input type="text" id="Noninvertingamplifier_Vout" size="15" value=0>[V]</p>
    <br>

    <script> 
    	       const GAIN = 20;
      	
		//R1とR2のidを取得
		let lr1id = document.getElementById("R1");
		let lr2id = document.getElementById("R2");
		let lvinid = document.getElementById("Vin");
		
		let livertingamplifier_timesid = document.getElementById("Invertingamplifier_times");
		let linvertingamplifier_logid = document.getElementById("Invertingamplifier_log");
		let linvertingamplifire_Voutid = document.getElementById("Invertingamplifire_Vout");
		
		let lnoninvertingamplifier_timesid = document.getElementById("Noninvertingamplifier_times");
		let lnoninvertingamplifier_logid = document.getElementById("Noninvertingamplifier_log");
		let lnoninvertingamplifier_Voutid = document.getElementById("Noninvertingamplifier_Vout");
	
		//R1とR2の数値を取得
		let lr1 = parseInt(lr1id.value);
		let lr2 = parseInt(lr2id.value);
		let lvin = parseInt(lvinid.value);
      	
      	lr1id.addEventListener("change",Calc);
      	lr2id.addEventListener("change",Calc);
      	lvinid.addEventListener("change",Calc);
      	
		function Calc(){
			console.log("関数実行");
			//R1,R2,Vinの値を再取得
			lr1 = parseFloat(lr1id.value);
			lr2 = parseFloat(lr2id.value);
			lvin = parseFloat(lvinid.value);
			//反転増幅回路計算
			//増幅度 = R1/R2
			livertingamplifier_timesid.value = (lr2/lr1).toPrecision(3);
			//GAIN = 20*log(増幅度)
			linvertingamplifier_logid.value = parseFloat(GAIN*Math.LOG10E * Math.log( parseFloat(livertingamplifier_timesid.value))).toPrecision(3);
			//出力電圧 = - Vin * 増幅度
			linvertingamplifire_Voutid.value = -lvin * parseFloat(livertingamplifier_timesid.value).toPrecision(3);
			
			//非反転増幅回路計算
			//増幅度 = 1+R1/R2
			lnoninvertingamplifier_timesid.value = (1+lr2/lr1).toPrecision(3);
			//GAIN = 20*log(増幅度)
			lnoninvertingamplifier_logid.value =parseFloat(GAIN*Math.LOG10E * Math.log(parseInt(lnoninvertingamplifier_timesid.value))).toPrecision(3);
			//出力電圧 = Vin * 増幅度
			lnoninvertingamplifier_Voutid.value = lvin * parseFloat(lnoninvertingamplifier_timesid.value).toPrecision(3);
		}
      </script>
  </body>
</html>

 

 

 HTMLの基本の参考:

 ・HTML の基本 - ウェブ開発を学ぶ | MDN

HTMLのidとは?使い方やclassとの違いについても解説 | 侍エンジニアブログ

【HTML】id属性とは? 使い方と特徴を解説 | ZeroPlus Media

 ・HTML Living Standardリファレンス

 javascript参考

 ・Document: querySelector() メソッド - Web API | MDN

 

関連記事

過去の記事:

HTML,CSS,Javascript9(javascriptでHTMLの数値取得)

javascriptでHTMLの数値取得

この記事では、HTMLで数値を設定し、その設定した値をjavascript側で取得する方法について記載する。

 

1. 目的

 ・HTMLで数値を設定し、その設定した値をjavascript側で取得する方法について理解する。(下記を作成)

 ・取得した値を使って、計算を行い、その計算結果を表示する。



 

目次

 

2. HTMLで数値の入力フォームと数値を設定する方法

<input type = "text" size="サイズ(数値)" value =数値" id = "id名">

 

例:

<input type="text" size="15" value="100" id ="R1">

 

 ・inputタグ: 入力フォームの作成 (typeがtextの時)

  参考:<input>: 入力欄(フォーム入力)要素 - HTML: ハイパーテキストマークアップ言語 | MDN

 ・size : inputフォームのサイズを指定

 ・value : 初期の値を設定、又は文字列 (フォームの中にここに記載したものが表示)

 ・id   : id名を設定

 

3. HTMLの数値をjavascriptで取得する。

 let 変数名 = parseInt(document.getElementById("id名").value);

 

例:

let lR1 = parseInt(document.getElementById("R1").value);

 

・parseInt :文字列の引数を、指定された基数 の整数値を返す。

  parseIntの詳細:parseInt() - JavaScript | MDN

・document.getElementById("id名").value :指定したidのvalueの文字列を取得する。

 

3. プログラムの作成(数値の取得と足し算)

<!DOCTYPE html>
<html lang="ja">
  <head>
  	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>足し算</title>
  </head>
  
  <body>
	<p> R1入力 <input type="text" size="15" value="100" id ="R1"></p>
	<p> R2入力 <input type="text" size="15" value="200" id ="R2"></p>
	<p> 足し算結果 <input type="text" size="15"  id = "ans"></p>

	<script>
		//R1とR2の値を取得
		let lR1 = parseInt(document.getElementById("R1").value);
		let lR2 = parseInt(document.getElementById("R2").value);
		let lans = document.getElementById("ans");
	
		//足し算の結果をvalueに設定
		lans.value = lR1 + lR2;
	</script>
  </body>
</html>

 

実行結果

ーーーーーーーーーーーーーーー

R1入力

R2入力

足し算結果

ーーーーーーーーーーーーーーー

 

4. プログラムの作成(数値の取得と足し算、再計算ボタンの追加)

上記プログラムに、再計算のボタンを付け、再計算ボタンを押すと、フォームに値で、再計算するプログラムを作成する。

<!DOCTYPE html>
<html lang="ja">
  <head>
  	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>足し算</title>
  </head>
  
  <body>
	<p> Num1入力 <input type="text" size="15" value="100" id ="Num1"></p>
	<p> Num2入力 <input type="text" size="15" value="200" id ="Num2"></p>
	<p> 足し算結果 <input type="text" size="15"  id = "ans2"></p>
	<input type="button" value="再計算" id = "reans">

	<script>
		//Num1とNum2の値を取得
		let lnum1 = parseInt(document.getElementById("Num1").value);
		let lnum2 = parseInt(document.getElementById("Num2").value);
		let ans2 = document.getElementById("ans2");
		let reans = document.getElementById("reans");
	
		//足し算の結果をvalueに設定
		ans2.value = lnum1 + lnum2;
		
		//クリックを押すと、再計算を実行
		reans.addEventListener("click",function(){
			//Num1とNum2の値を再取得
			lnum1 = parseInt(document.getElementById("Num1").value);
			lnum2 = parseInt(document.getElementById("Num2").value);
			//計算結果をvalueに設定
			ans2.value = lnum1 + lnum2;
		})
	</script>
  </body>
</html>

 

実行結果

ーーーーーーーーーーーーーー

Num1入力

Num2入力

足し算結果

ーーーーーーーーーーーーーー

 

 少数を取得したい場合は、parseIntではなく、parseFloatを使用する。

 

 HTMLの基本の参考:

 ・HTML の基本 - ウェブ開発を学ぶ | MDN

HTMLのidとは?使い方やclassとの違いについても解説 | 侍エンジニアブログ

【HTML】id属性とは? 使い方と特徴を解説 | ZeroPlus Media

 ・HTML Living Standardリファレンス

 javascript参考

 ・Document: querySelector() メソッド - Web API | MDN

 

関連記事

過去の記事:

HTML,CSS,Javascript8(javascriptでidの取得とaddEventListenerについて)

javascriptでidの取得とaddEventListenerについて

この記事では、javascriptでidを取得し、それを操作する方法について記載する。

また、addEventListenerでクリックした時に関数を実行する処理について記載する。

 

1. 目的

 ・javascriptのでidを取得し、それを操作する方法について理解する。

 ・addEventListenerについて理解する。

 

目次

 

2. idの取得方法

let 変数名 = document.getElementById("id名");

例:

let tes1 = document.getElementById("test1");

 

イベントの追加方法

イベントの追加には、addEventListenerを使用する。

addEventListener("イベント",実行するもの)

addEventListener("click",function(){

 ・EventTarget: addEventListener() メソッド - Web API | MDN

 ※clickがクリックした時のイベント

  function()は無名関数

 

2.1 イベント

 コードの実行に影響を与えるマウス操作や、キー操作、ウィンドウ操作などのユーザーの操作や環境の変化などを取得する。

 イベントの種類:イベントリファレンス | MDN

 

 2.2 イベント例

 ・dragenterドラッグ中のイベントやテキストの選択範囲が、妥当なドロップターゲットに入ったとき

 ・keyup:キーが離されたとき

 ・scroll:文書のビューや要素がスクロールされたとき

 ・clickポインターが要素の中にある状態で、ポインティングデバイスのボタン (マウスの第一ボタンなど) が押されて離されたとき

 

2.3 実行するもの

 指定された種類のイベントが発生した時、実行されるオブジェクト

 以下の3つのいずれかが入る。

 ・null

 ・handleEventメソッド (オブジェクトとして設定するメソッド)

 ・javascriptの関数

 参考:【JavaScriptの基本】イベントオブジェクト | ワードプレステーマTCD

 

3.プログラムの作成(idを取得して、クリックして文字列を変更する)

<!doctype html>
 <html lang="ja">
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width" />
     <title>テストページ</title>
     <style>
     </style>
     <script>
     	window.onload = function () {
       		let tes1 = document.getElementById("test1");
       		tes1.addEventListener("click",function(){
       			tes1.innerText = "タイトル"
       		})
       	}
     </script>
   </head>
   <body>
     <p id= "test1">Hello</p>
   </body>
 </html>
 ||<

 実行結果

ーーーーーーーーーーーーー

Hello

ーーーーーーーーーーーーー

 

 このプログラムは、Helloをクリックすると、タイトルに代わるプログラム。

  document.getElementById("test1"); 

 で、test1というidをtes1という変数に格納している。

 

 tes1.addEventListener("click",function(){

 これは、tes1にaddEventListenerでイベント(クリックや、ユーザーが行う動作)をadd(追加)している。 

 今回の場合は、addEventListene("click", でクリックというイベントが発生し、function(){を実行するという処理になっている。

 

 tes1.innerText = "タイトル"

 でtes1の文字列をタイトルに変更する。

 

 

 HTMLの基本の参考:

 ・HTML の基本 - ウェブ開発を学ぶ | MDN

HTMLのidとは?使い方やclassとの違いについても解説 | 侍エンジニアブログ

【HTML】id属性とは? 使い方と特徴を解説 | ZeroPlus Media

 ・HTML Living Standardリファレンス

 javascript参考

 ・Document: querySelector() メソッド - Web API | MDN

 

関連記事

過去の記事:

HTML,CSS,Javascript7(javascriptの導入)

javascriptの導入、記載方法ついて

この記事では、javascriptの導入、何が出来るかなどについて記載する。

 

1. 目的

 ・javascriptの導入について理解する。(どこに書くかなど)

 

目次

 

2. javascriptとは

 ・プログラミング言語の一つで、HTMLのコントロールに使用される。

 ・HTMLに動的な機能の追加などが出来る。

 ・webアプリなどを作成する時など必要

 

3.javascriptの書き方と、書く場所

<script>
// javascriptのコードを記述する
</script>

例:

<script>
  // javascriptのコードを記述する
    let element = document.querySelector("h1")
    element.innerText = "タイトル"
</script>

 ・これで、h1というタグを取得し、その文字列を「タイトル」に変更している。

 ・documentはhtmlの要素を取得するのによく出てくる。

 →参考:Document - Web API | MDN

 

javascriptの書く場所

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">

<script>
// コードを記述する
</script>

</head>
<body>

<script>
// コードを記述する
</script>

</body>
</html>

 上記2箇所に記載することが可能。

 この場所によって、プログラムによってはエラーになる為注意が必要。

 下記に、そのプログラムを示す。

 

4.プログラムの作成(javascriptでh1編集)

<!doctype html>
 <html lang="ja">
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width" />
     <title>テストページ</title>
     <style>
         .red-moji {
           color: red;
         }
     </style>
   </head>
   <body>
     <h1 class="red-moji">Hello</h1>
     <h2>World</h2>
     <script>
       let element = document.querySelector("h1")
       element.innerText = "タイトル"
     </script>
   </body>
 </html>

 

実行結果

 ※このようにh1で設定したHelloという文字列をタイトルという文字列に置き換えた。

5.プログラムの作成(javascriptでh1編集:エラーが発生する場合)

<!doctype html>
 <html lang="ja">
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width" />
     <title>テストページ</title>
     <style>
         .red-moji {
           color: red;
         }
     </style>
     <script>
       let element = document.querySelector("h1")
       element.innerText = "タイトル"
     </script>
   </head>
   <body>
     <h1 class="red-moji">Hello</h1>
     <h2>World</h2>
   </body>
 </html>

 

実行結果

 ※上記の場合、Helloがjavascriptによって、変化していない。

 F12を押して、エラーを確認すると、下記のようなエラーが発生している。

 Uncaught TypeError: Cannot set properties of null (setting 'innerText')

 これは、innerTextで設定しようとしたが取得できなくて、セットできないということだ。

 この発生原因としては、scriptタグheadタグの中に入っているため、htmlのbodyを実行する前に、javascriptが実行されてしまい、h1が見つからない為発生している。

 

6.プログラムの作成(javascriptをonloadにより、最後に読み込む)

上記のようにHTMLを読み込んだ後に、javascriptを読み込まないとエラーが発生してしまう場合がある。

その解決策として、onloadイベントというものがある。

これは、実行する場合にHTMLが読み込まれてから、動作を開始するというものだ。

<!doctype html>
 <html lang="ja">
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width" />
     <title>テストページ</title>
     <style>
         .red-moji {
           color: red;
         }
     </style>
     <script>
     	window.onload = function () {
       		let element = document.querySelector("h1")
       		element.innerText = "タイトル"
       	}
     </script>
   </head>
   <body>
     <h1 class="red-moji">Hello</h1>
     <h2>World</h2>
   </body>
 </html>

実行結果

 ※このように、最初にこれを知らないと、エラーに躓くので注意が必要。

 

 

 HTMLの基本の参考:

 ・HTML の基本 - ウェブ開発を学ぶ | MDN

HTMLのidとは?使い方やclassとの違いについても解説 | 侍エンジニアブログ

【HTML】id属性とは? 使い方と特徴を解説 | ZeroPlus Media

 ・HTML Living Standardリファレンス

 javascript参考

 ・Document: querySelector() メソッド - Web API | MDN

 

関連記事

過去の記事: