アウトプットを頑張る

初めてのプログラミング学習期間中の記録と、日頃読んでいる本をメモのアウトプットをがんばります。

【プログラミング学習】JavaScriptの色々な関数(無名/即時/アロー)

名前の無い関数

f:id:yuma6128:20220111072108j:plain

◎無名関数

  • 関数式で記述されている function(){} が無名関数と呼ばれる部分になります。
    無名関数は、関数名なしで関数を定義でき、より簡潔なコードが記述できるメリットがあります。
// 関数宣言
function hello(){
 console.log('こんにちは')
}

// 関数式(無名関数)
const hello = function(){
 console.log('こんにちは')
}

サンプルコードの記述

const calc = function(num1,num2){
 return num1 * num2
}

const num1 = 5
const num2 = 6
console.log(calc(num1,num2))

f:id:yuma6128:20220116121553p:plain
コンソールで30と出力されていれば成功です。

定義したと同時に実行される関数

◎即時関数

  • 即時関数とは、関数を定義すると同時に実行される構文になります。
    関数を定義してから呼び出す手間を省くことができます。
// 無名関数
const countNum = function(num){
console.log(num)
}
countNum(1)

// 即時関数
(function countNum(num){
console.log(num)
})(1)
  • ()の中にfunctionからはじまる関数定義そのものを配置することで、その関数を即実行するようになります。
    その結果、関数を呼び出すという手間が省けます。

    より短い記述の関数

    ◎アロー関数

    アロー関数とは、functionの記述を省略し、その代わりに()=>という記述によって関数を定義する構文です。
    より短い記述で定義をできるメリットがあります。

const countNum = (num) =>{
console.log(num)
}
countNum(5)

5がコンソールで表示されていれば成功です。

【読書】THE MODEL 感想まとめ

THE MODEL まとめ感想

f:id:yuma6128:20220116123233j:plain

1.Why THE MODEL

  • 会社の戦略や文化理解のため,改めて読みたくなった。
    2年くらい前に読んだときは、カスタマーサクセス部分を中心に読んでいたため改めて全体を読みました。
  • 学びたいこと
    • SaaSのビジネスモデルの再現性のある「プレイブック」としてインプットをいていく。
      • 愚者は経験に学び、賢者は歴史に学ぶ
    • 自分ひとりで経験できることは限りがあるため、他者の経験から学ぶことで自分のものにし大きな価値につなげる。
    • 営業方法としてマーケティングインサイドセールス(IS)→セールス→カスタマーサクセス(CS)のそれぞれの役割の把握
    • テクノロジー、ITツールを広め、その良さを理解してもらうためにどういったアプローチがよいかを見つける。

2.本書の構成

  1. 第1部 アメリカで見た新しい営業スタイル
  2. 第2部 分業から共業へ
  3. 第3部 プロセス
  4. 第4部 3つの基本戦略
  5. 第5部 人材・組織・リーダーシップ

3.第1部〜第2部

  • マーケティング ⇒ IS ⇒ セールスによる分業体制による営業方法で、そのプロセスをシステムで管理していること。
  • 分業によるメリット
    • 同じリズムの仕事に集中ができ、効率が上がること。
    • 各プロセスの部門毎のパフォーマンスをチェックでき、ボトルネックがどこか判断しやすく、結果的に対策が打てる。
  • 新規リードは永遠に増え続けることはない ⇒ だからこそリサイクルの重要性。
  • あらゆる接点において顧客体験を高め、エンゲージメントを深める必要がある。
  • グループに分かれていても、共同の作業をすることで、達成可能な共通の目標を掲げることで敵対を防ぐ。そのために有効なのが「逆の流れ」をつくること。

    4.第3部

    マーケティング


  • マーケティング部門はコミュニケーションの指揮者として、機能が必要。
  • 商談失注後も、再度リードの育成サイクルに戻すことでリードをリサイクルの箱に入れておく。
  • マーケティング・コミュニケーションの目的は、見込み客を次のステージに進めること。


IS


  • 営業にパスする供給量を調整が必要。
  • 限られた時間の中で効率よくアプローチすることが求められる。
  • リサイクルリードの定期的な掘り起こし。


セールス


  • 顧客のビジネス課題の認識が必要。
    • 顧客のビジネス課題(ビジネスイシュー)
    • 問題点(プロブレム)
    • 解決策(ソリューション)
    • 効果(ベネフィット)


CS


  • CSは会社の文化
  • 顧客とベンダー側、双方の利害が一致した部署かつ、競合他社との差別化につながる。

    5.第4部

  • 市場戦略ではアクセルを踏みすぎて失敗した企業より踏むべきときに踏まないまま失敗した企業のほうが圧倒的に多い。
  • 上記はただお金を使うことではなく、潜在市場の規模、獲得可能なマーケットシェア、競合など様々な要因を考慮して中長期の戦略を決めて実行のスピードを上げること。
  • 勝つためのセオリー(ビジネススクールなどで教えられている経営理論を軽視せず勉強)をもったうえで判断をする。
  • 「ヒト・モノ・カネ」のリソース配分を決める。
  • プロセスを因数分解し、生産性の最大化のためのレバーを探す。
  • 「何をみるか」を強く意識をする。ex.商談フェーズの進捗

    6.第5部

  • 成功する会社とそうではない会社の差は「実行」で差がつく。
    • 経営は実行 著ラリー・ボシディ、ラム・チャラン
  • 自分一人でやったほうが早いと考える人は自分一人のキャパシティ以上に成長しない。一緒に働くメンバーの良いところを見つけつなぎ合わせることを意識する。
  • 人を成長させるのは、常に原状を上回ろうとする向上心。

【プログラミング学習】JavaScriptの関数宣言

JavaScriptの様々な関数定義

f:id:yuma6128:20220111072108j:plain

関数宣言

  • 関数のときに紹介した定義する方法です。

ingkiym926.hatenablog.com

function 関数名( 引数 ) {
 // 関数内の処理
}

こちらの関数宣言はRubyと共通部分も多かったと思います。
JavaScriptでは関数の定義のために、別の方法があります。
今回は、関数定義方法である関数式を紹介します。

関数式

関数式と、関数宣言の違いは記述様式です。

// 関数宣言(これまで)

function 関数名( 引数 ) {
 // 関数内の処理
}

// 関数式 (今回)
 変数 = function( 引数 ){
 // 関数内の処理
}

関数宣言と関数式の違い

  • 関数宣言と関数式は読み込まれるタイミングが異なります。
    下記で違いを説明いたします。
hello()

const hello = function(){
 console.log('こんにちは')
}

f:id:yuma6128:20220113074443p:plain となり、Uncaught ReferenceError: hello is not definedat :1:1 というエラーが1行目の時点で関数helloが定義されていないため表示されます。
関数宣言を用いた場合

hello()
function hello(){
console.log('こんにちは')
}

f:id:yuma6128:20220113074832p:plain
と表示されました。
JavaScriptでは関数宣言は先に読み込まれるために、このような事象が発生します。
一方で関数式であれば先に読み込まれることはありません。

【プログラミング学習】JavaScriptの戻り値

プログラミング学習

f:id:yuma6128:20220109151701j:plain戻り値
- Rubyではメソッドにおける最後の戻り値が、戻り値として処理されました。

def calc(num1,num2)
 num1 * num2
end

num1 = 5
num2 = 6
puts calc (num1,num2)

# 戻り値は30が表示
  • 一方JavaScriptでは、関数の戻り値をreturnを用いて明示する必要があります。

    returnを用いない場合

 function calc(num1,num2) {
 num1 * num2 
}

const num1 = 5
const num2 = 6
console.log(calc(num1,num2))
# 戻り値は出力されない

上記の場合は、戻り値が表示されないため下記のように記述します。

 function calc(num1,num2) {
  return num1 * num2 
}

const num1 = 5
const num2 = 6
console.log(calc(num1,num2))
30

と30が表示されれば、成功です。

【プログラミング学習】JavaScriptの関数

f:id:yuma6128:20220106072708j:plain

JavaScriptの関数

  • JavaScriptの関数とは、Rubyでいうところのメソッドのことを
    関数と呼びます。
    Rubyでメソッドを定義する際はdef メソッド名 ~ endと記述をしていました。
    JavaScriptでは、function 関数名( ) { 処理 }と記述することで関数を定義します。

    ◎function

  • functionを用いることで、関数を定義することができます。
    functionに続けて関数の名前を記述します。 そして( )のなかに引数を、{ }の中に処理を書きます。
function 関数名 (引数)  {
 // 処理
}

下記のコードをコンソールに記述し、実行します。

function sayHello(){
console.log("Hello World!")
}

sayHello()

f:id:yuma6128:20220106074126p:plain と表示されていれば成功です。

【プログラミング学習】JavaScriptの配列の繰り返し処理

■プログラミング学習 f:id:yuma6128:20220104072921j:plain ◎forEach関数
forEach関数とは、配列に格納されている要素の1つひとつに対して
繰り返し処理を行う場合に用いられる関数です。

配列.forEach( function(value){
 // 処理の記述
})

上記のように、forEach関数の引数に、関数(function)を指定することで、実行できます。
指定した関数(function)に引数を定義することで、その引数には配列の要素が入ります。
上記の例では、引数はvalueになります。
添字0から最後の要素まで繰り返すたびに、引数は各要素に置き換えられます。

prefecture = ["tokyo","osaka","fukuoka"]
prefecture.forEach( function(value) {
 console.log(value) //配列に格納されている要素の数だけ実行される
})

上記コードをコンソールで実行をすると、すべての要素が順番に出力されます。
tokyo
osaka
fukuoka
と表示されます。
引数valueには、1回目の繰り返しで、「tokyo」、2回目 で、「osaka」3回目で、「fukuoka」が代入されます。
そして、要素の数だけ繰り返し処理を実行し、この繰り返し処理は終了します。

【プログラミング学習】JavaScriptの条件分岐

■プログラミング学習 f:id:yuma6128:20211231095449j:plain

◎条件分岐 JavaScriptで条件分岐をする際には、Ruby同様if文を使います。

if (条件式1){
// 条件式1がtrueのときの処理
} else if (条件式2) {
// 条件式1がfalseで条件式2がtrueのときの処理
} else {
// 条件式1も条件式2もfalseのときの処理
}

Rubyのif文の記述と異なる点としては下記の3点になります。
1.条件式は ()でくくること

2.条件式の後に続く 波括弧{ }内の処理が実行されること

3.複数条件を指定する場合は、else のあとに続けてif文を記述すること

const num = 80

if (num % 20 == 0 ){
console.log(`${num}は4と5の倍数です`)
} else if (num % 4 == 0 ) {
 console.log(`${num}は4の倍数です`)
}else if (num % 5 == 0 ){
console.log(`${num}は5の倍数です`)
} else {
console.log(`${num}は4の倍数でも、5の倍数でもありません`)
} 

上記をコンソールで記述して、Enterを押すと、
80は4と5の倍数です。
と結果が出てきます。